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でMVC3Webアプリを実行すると、GridSelection.disableSelected関数が原因で正常に実行されますが、ChromeおよびMozillaFirefoxでは機能しevent.preventDefault();ません。アンカーリンクは、ユーザーがデータアイテムを追加した後でも、データアイテムを追加します。
防止されていpreventDefaultた関数内にメソッドがあっても大丈夫ですか?GridSelection.addItem
どの属性がによって防止されていますかpreventDefault、それはhrefですか、それともonclickですか?
これの何が問題なのですか?このバグを修正するにはどうすればよいですか?助けることができる人はいますか?