【发布时间】:2022-04-09 19:51:27
【问题描述】:
我使用 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);
GridSelection addItem 和 disableSelected 函数的 JS 代码:
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...
当我在 IE 中运行 MVC3 网络应用程序时,由于 GridSelection.disableSelected 函数,它运行良好,但在 Chrome 和 Mozilla Firefox 中,event.preventDefault(); 没有不行。即使用户已经在其中添加了数据项,锚链接仍然会添加它。
在被阻止的GridSelection.addItemfunction 中包含preventDefault 方法是否可以?
preventDefault 阻止了哪个属性,是 href 还是 onclick?
这有什么问题? 我该如何修复这个错误? 谁能帮忙?
【问题讨论】:
-
你有多确定点击处理程序甚至被调用?
anchorOption.fadeTo("slow", .5);有效吗? -
这也是我的冲动之一。我在这里有一个开发人员工具应用程序,用于调试我的应用程序。我在脚本的代码行上添加了断点,以了解它是否通过了这些行并且确实通过了。
-
@nnnnnn:请在我编辑的帖子中查看我添加的问题。谢谢
-
您检查过 Mozilla 中的错误控制台吗?有什么错误吗?您能否在
e.preventDefault();之前添加警告行以确保调用该函数。 -
您是否忘记在
return false后添加分号。它不应该出错,但值得一试。
标签: javascript jquery asp.net-mvc-3 telerik-grid preventdefault