jQuery click function doesn't work after ajax call?
本问题已经有最佳答案,请猛点这里访问。
jquery click函数在这里工作正常
1 2 3 4 5 | delete $('.deletelanguage').click(function(){ alert("success"); }); |
但是如果我用Ajax设置了一些
例如
1 2 3 4 5 6 7 8 | function CreateRow(jdata) { $('#LangTable').append('delete'); } $.ajax({ url:"/jobseeker/profile/", success: CreateRow }); |
现在,最后一个
jfiddle示例:http://jsfiddle.net/suhailvs/wjqjq/
注意:这里的CSS工作正常。
我想让这些新附加的
唯一的问题是,.click作品已经在页面元素。你有这样的事情,如果你使用的是未来的
1 2 3 | $("#LangTable").on("click",".deletelanguage", function(){ alert("success"); }); |
当你使用一个事件处理程序,它
你需要使用的代表在基于事件的处理
1 2 3 | $(document).on('click', '.deletelanguage', function(){ alert("success"); }); |
1 2 3 | $('body').delegate('.deletelanguage','click',function(){ alert("success"); }); |
或
1 2 3 | $('body').on('click','.deletelanguage',function(){ alert("success"); }); |
由于类是由动,你需要使用事件的事件处理程序的委托登记样:
1 2 3 4 | $('#LangTable').on('click', '.deletelanguage', function(event) { event.preventDefault(); alert("success"); }); |
这会将你的事件的任何锚在
小提琴的演示程序
The Click事件(是不是有点定义为在事件。你可以使用Live或事件的代表。
1 2 3 4 | $('.deletelanguage').live('click',function(){ alert("success"); $('#LangTable').append(' ------------ Now my class is deletelanguage. click me to test it is not working.'); }); |
这里的小提琴
但它将同你的代码工作的在线动态创建的元素。
1 2 3 4 | $(document).on('click', '.deletelanguage', function () { alert("success"); $('#LangTable').append(' ------------ Now my class is deletelanguage. click me to test it is not working.'); }); |
我测试的解决方案是简单的为我工作!我是在单独的JavaScript JavaScript文件。我做的是我放的是新的JavaScript的HTML元素,与这是Ajax加载和它的作品精美,是我!这是那些具有大的Javascript文件!!!!!!!!