у меня есть эта строка кода, на мой взгляд, с помощью Telerik Grid:
columns.Bound(o => o.URI).Width(10).Sortable(false)
.ClientTemplate("<A class='btnGrid' id=source<#= ID #> onclick=GridSelection.addItem('<#= ID #>') >Add</A>").Title("").Width(50);
JS-коды функций GridSelection addItem и disableSelected:
GridSelection = {
addItem: function (value) {
var anchorOption = $("a[id=source" + value + "]");
anchorOption.click(function (e) { // variable name changed from "event"
e.preventDefault();
return false; // as suggested by mr. Hamdi
});
anchorOption.fadeTo("slow", .5);
GridSelection.disableSelected(anchorOption, true);
var data = $("#GridSource").data('tGrid').data;
var selectedObject;
for (var item in data) {
if (data[item].ID == value) {
selectedObject = data[item];
break;
}
}
var grid = $("#GridSelected").data('tGrid');
var newData = $("#GridSelected").data('tGrid').dataSource._data;
newData.push(selectedObject);
grid.dataBind(newData);
grid.sort("");
anchorOption.fadeTo("slow", .5);
},
disableSelected: function (element, disable) {
//false on IEs 6, 7 and 8
if (!$.support.leadingWhitespace) {
if (disable) {
$(element).attr('disabled', 'disabled');
} else {
$(element).removeAttr('disabled');
}
}
},
// other GridSelection subfunctions here...
Когда я запускаю веб-приложение MVC3 в IE, оно работает хорошо благодаря функции GridSelection.disableSelected, но в Chrome и Mozilla Firefox event.preventDefault();
не работает. Якорная ссылка по-прежнему добавляет элемент данных даже после того, как пользователь уже добавил его туда.
Можно ли использовать метод preventDefault
внутри функции GridSelection.addItem
, которая блокировалась?
Какой атрибут запрещен preventDefault
, это href или onclick?
Что не так с этим? Как я могу исправить эту ошибку? Любой, кто может помочь?
anchorOption.fadeTo("slow", .5);
работает? - person nnnnnn   schedule 24.02.2012e.preventDefault();
, чтобы убедиться, что функция вызывается. - person Hamdi   schedule 24.02.2012return false
. Это не должно выдавать ошибки, но стоит попробовать. - person Hamdi   schedule 24.02.2012if (!$.support.leadingWhitespace)
в функции disableSelected. Вы просто будете иметь тело этого состояния - person Hamdi   schedule 24.02.2012GridSelection.addItem()
(и как она связана с функцией.verify()
в разметке). - person nnnnnn   schedule 24.02.2012.addItem()
, а не.verify()
..verify()
было одним из моих предыдущих решений, то есть создать отдельную функцию, которая будет вызываться в onclick. Но я удалил его и решил не иметь его. Мои извинения еще раз. - person ideAvi   schedule 24.02.2012