Javascript jQuery load()单击的动态内容被激发的次数与加载的次数相同
我通过jQuery load()加载内容,但每次加载给定页面时,页面上的单击都会触发多次。为什么 在这里演奏小提琴:Javascript jQuery load()单击的动态内容被激发的次数与加载的次数相同,javascript,jquery,ajax,jquery-load,Javascript,Jquery,Ajax,Jquery Load,我通过jQuery load()加载内容,但每次加载给定页面时,页面上的单击都会触发多次。为什么 在这里演奏小提琴: 由于要调用函数两次,请尝试以下操作: $(document).ready(function() { function loadContent() { $(".ajaxContainer").load("http://fiddle.jshell.net/ #actions", function() { alert("Done");
由于要调用函数两次,请尝试以下操作:
$(document).ready(function() {
function loadContent() {
$(".ajaxContainer").load("http://fiddle.jshell.net/ #actions", function() {
alert("Done");
});
}
loadContent();
$(".load").click(loadContent);
});
因为要调用函数2次,请尝试以下操作:
$(document).ready(function() {
function loadContent() {
$(".ajaxContainer").load("http://fiddle.jshell.net/ #actions", function() {
alert("Done");
});
}
loadContent();
$(".load").click(loadContent);
});
只需将您的点击手柄置于
加载之外即可:
$(document).ready(function() {
function loadContent() {
$(".ajaxContainer").load("http://fiddle.jshell.net/ #actions", function() {
alert("Done");
});
}
$(".load").click(loadContent);
loadContent();
});
只需将您的点击手柄置于加载之外
:
$(document).ready(function() {
function loadContent() {
$(".ajaxContainer").load("http://fiddle.jshell.net/ #actions", function() {
alert("Done");
});
}
$(".load").click(loadContent);
loadContent();
});
这是因为您多次添加单击事件
每次代码运行时,都会重新定义click函数。重新定义单击时,它不会替换上一个,而是会添加到堆栈中,以便在每次发生“单击”事件时执行。这将应用于jQuery中的所有事件
当您通过AJAX加载时,文档中的变量和事件仍然保持不变。这意味着您只是在每次运行ajax调用时要执行的函数调用层之上添加层,这是因为您要多次添加click事件
每次代码运行时,都会重新定义click函数。重新定义单击时,它不会替换上一个,而是会添加到堆栈中,以便在每次发生“单击”事件时执行。这将应用于jQuery中的所有事件
当您通过AJAX加载时,文档中的变量和事件仍然保持不变。这意味着您只是在每次运行ajax调用时要执行的函数调用层的顶部添加层,每次加载内容时,您都会执行以下行:
$(".load").click(loadContent);
它将新的事件处理程序添加到事件处理程序列表中,以便在单击.load
时执行。您执行函数三次,现在有三个相同的处理程序,每次单击都会触发。每次加载内容时,您都会执行这一行:
$(".load").click(loadContent);
它将新的事件处理程序添加到事件处理程序列表中,以便在单击.load
时执行。您执行函数三次,现在有三个相同的处理程序,每次单击都会触发。这只是一个示例。我有这么多的网页这么多的链接。为了组织,我在call函数中有click事件。还有其他方法吗???@KennethB这会使你的函数被调用两次,有更好的组织方法,在定义函数后使用单击处理程序。这只是一个例子。我有这么多的网页这么多的链接。为了组织,我在call函数中有click事件。还有其他方法吗???@KennethB这会使你的函数被调用两次,有更好的组织方法,在定义函数后使用单击处理程序。如果我在每次加载之前都取消绑定(“单击”)所有链接,那应该没问题??你为什么要首先重新绑定它?就绑一次。你可以在其他答案中看到它是如何正常工作的。如果在每次加载之前我只是取消绑定(“单击”)所有链接,那应该没问题??你为什么要首先重新绑定它?就绑一次。你可以在其他答案中看到它通常是如何完成的。