Javascript 剑道网格页面更改禁用其他jquery
我有一个剑道网格,每当我进入下一页或使用我的过滤器时,它将不再为我的Javascript 剑道网格页面更改禁用其他jquery,javascript,jquery,kendo-ui,kendo-grid,Javascript,Jquery,Kendo Ui,Kendo Grid,我有一个剑道网格,每当我进入下一页或使用我的过滤器时,它将不再为我的指令按钮或我的提示按钮触发我的点击事件。单击事件可以正常工作,直到我与网格交互为止 $(document).ready(function () { $("#clientsDb").kendoGrid({ dataSource: { pageSize: 15 }, sort
指令按钮
或我的提示按钮
触发我的点击事件。单击事件可以正常工作,直到我与网格交互为止
$(document).ready(function () {
$("#clientsDb").kendoGrid({
dataSource: {
pageSize: 15
},
sortable: true,
pageable: true,
filterable: true,
groupable: true,
scrollable: false,
resizable: true
}).data("kendoGrid");
$("#FieldFilter").keyup(function () {
var value = $("#FieldFilter").val();
var grid = $("#clientsDb").data("kendoGrid");
if (value) {
grid.dataSource.filter({
logic: "or",
filters: [
{ field: "TaskName", operator: "contains", value: value }
]
});
} else {
grid.dataSource.filter({});
}
});
kendo.ui.editor.ColorTool.prototype.options.palette = "basic";
$('.instructionsButton').one("click", function () {
var target = $(this).attr('data-target');
$(target + " " + ".editor").kendoEditor({
resizable: {
content: true,
toolbar: true
},
tools: [
"formatting",
"bold",
"italic",
"underline",
"justifyLeft",
"justifyCenter",
"justifyRight",
"justifyFull",
"insertUnorderedList",
"insertOrderedList",
"indent",
"outdent",
"createLink",
"unlink",
"foreColor",
"backColor"
],
paste: function (ev) {
ev.html = $(ev.html).text();
}
});
});
$('.tipsButton').one("click", function () {
var target = $(this).attr('data-target');
$(target + " " + ".editor").kendoEditor({
resizable: {
content: true,
toolbar: true
},
tools: [
"formatting",
"bold",
"italic",
"underline",
"justifyLeft",
"justifyCenter",
"justifyRight",
"justifyFull",
"insertUnorderedList",
"insertOrderedList",
"indent",
"outdent",
"createLink",
"unlink",
"foreColor",
"backColor"
],
paste: function (ev) {
ev.html = $(ev.html).text();
}
});
});
});
我所拥有的
$(document).delegate('.tipsButton', "click", function () {
var target = $(this).attr('data-target');
$(target + " " + ".editor").kendoEditor({
resizable: {
content: true,
toolbar: true
},
tools: [
"formatting",
"bold",
"italic",
"underline",
"justifyLeft",
"justifyCenter",
"justifyRight",
"justifyFull",
"insertUnorderedList",
"insertOrderedList",
"indent",
"outdent",
"createLink",
"unlink",
"foreColor",
"backColor"
],
paste: function (ev) {
ev.html = $(ev.html).text();
}
});
});
您需要使用委托,因为页面上的元素没有绑定到事件。如果你做了类似的事情:
$(document).delegate("classOrId", "eventType", function () {
// Do function stuff here
});
然后,
eventType
应该在您输入的classOrId
的所有页面上的元素上触发 我遇到的问题是,它只是一次又一次地创建编辑器。我每次点击只需要运行一次。你说的一遍又一遍地创建它是什么意思?所有元素都需要一个编辑器吗?如果是这样的话,为什么不直接构建一个并根据需要隐藏/显示它(使用上面的委托代码)?页面上大约有27个“任务”,每个任务都有自己的编辑器。如果它一次构建所有任务,那么页面加载是疯狂的。所以我用上面的代码实现了点击。我的意思是,如果我把委托放进而不是。一
如果我点击打开编辑器的图标,它会一直把编辑器放在编辑器中。我添加了代码I changedOk,所以它使用的是同一个编辑器,只是在其中创建一个新的编辑器,而不做任何内务处理。我同意尝试加载大量编辑器会导致浏览器出现动脉瘤。不幸的是,我能想到的最干净的方法是销毁编辑器的现有实例,然后单击调用一个新的编辑器。我想不出任何方法来绑定到不是DOM的元素。你能拉小提琴吗?