2017-03-03 140 views
0

我有一个使用ajax动态插入网页的小部件,并将它自己的jquery放在标题中,一切正常。jQuery .on click动作元素仅适用于第一次

但是当该小工具我粘贴一些额外的脚本添加等待用户输入一些动态添加的元素,他们做的工作很好,但是装载插件的元素最初只获得与.click()事件而动感的元素做正确绑定工作,但只是第一次有一些非常奇怪的行为,比如多次触发点击(通过我点击的电话显而易见),然后完全不再工作,这里可能的原因是其他的常驻脚本网站搞乱了我的脚本还是其他的东西?

我使用的所有元素:

$('body').on('click', '.page_link', someFunction); 

以上没有工作,所以我想这其中的工作如预期与预先加载的插件,但没有这么多的动态添加那些元素:

$('.page_link').click(someFunction); 
$('body').on('click', '.page_link', someFunction); 

任何帮助表示赞赏,谢谢。

+1

您可以创建一个小提琴例如链接,这样我们就可以让你知道添加到页面的解决方案 –

+0

动态控制,一旦你的页面加载和可用,直到你的页面是没有得到刷新。一旦你的页面被回发或重新加载,你必须重新附加事件。最好的方法是你必须创建一个静态父元素,并且必须将所有动态控件分配给它。你还必须确保重新附加事件,如parent.child.event = clickevent; –

+0

user3950705你检查了评论和答案吗? –

回答

1

对于jQuery的动态加载的元素,你需要重新应用事件(点击)

在jQuery 1.7 jQuery.fn.on,您可以:

$(parentSelector).on(eventName, dynamicChild, function() {}); 

$(parentSelector)必须是非dyanamic元素 对于您可以使用,你追加动态元素

此前的jQuery 1.7,你可以使用body或父元素是使用活的():

$(selector).live(eventName, function(){}); 
0

您将不得不使用文档全局变量来绑定单击事件。请尝试使用下面的代码:

$(document).on('click', '.page_link', someFunction); 
+0

可能的重复,如果它不'从身体工作...它不会从文档工作。 –

+0

以及它为我工作。 :) – Santosh

相关问题