Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html jQuery click函数没有';ajax调用后无法工作? jqueryclick函数在这里工作得很好 现在是$('.deletelanguage')。单击查看最后一个_Html_Ajax_Jquery_Dom - Fatal编程技术网

Html jQuery click函数没有';ajax调用后无法工作? jqueryclick函数在这里工作得很好 现在是$('.deletelanguage')。单击查看最后一个

Html jQuery click函数没有';ajax调用后无法工作? jqueryclick函数在这里工作得很好 现在是$('.deletelanguage')。单击查看最后一个,html,ajax,jquery,dom,Html,Ajax,Jquery,Dom,注意:CSS在这里工作良好 我想让这些新添加的使用jQuery单击 $('body').delegate('.deletelanguage','click',function(){ alert("success"); }); 或 当您使用$('.deletelanguage')。单击()注册事件处理程序时,它仅将处理程序添加到执行代码时dom中存在的元素中 这里需要使用基于委托的事件处理程序 $(document).on('click', '.deletelanguage', func

注意:CSS在这里工作良好

我想让这些新添加的
使用jQuery单击

$('body').delegate('.deletelanguage','click',function(){
    alert("success");
});

当您使用
$('.deletelanguage')。单击()注册事件处理程序时,它仅将处理程序添加到执行代码时dom中存在的元素中

这里需要使用基于委托的事件处理程序

$(document).on('click', '.deletelanguage', function(){
    alert("success");
});

由于类是动态添加的,因此需要使用注册事件处理程序,如:

$('#LangTable').on('click', '.deletelanguage', function(event) {
    event.preventDefault();
    alert("success");
});
这会将您的事件附加到
#LangTable
元素中的任何锚定, 减少了必须检查整个
文档
元素树的范围,提高了效率

这里是

与您的代码相同,但它将在动态创建的元素上工作

$(document).on('click', '.deletelanguage', function () {
    alert("success");
    $('#LangTable').append(' <br>------------<br> <a class="deletelanguage">Now my class is deletelanguage. click me to test it is not working.</a>');
});
$(文档).on('click','deletelanguage',函数(){
警惕(“成功”);
$(“#LangTable”).append(“
--------------
现在我的类是deletelanguage。单击我测试它是否工作。”); });
单击事件在定义该事件的位置不存在。您可以使用live或委派事件

$('.deletelanguage').live('click',function(){
    alert("success");
    $('#LangTable').append(' <br>------------<br> <a class="deletelanguage">Now my class is deletelanguage. click me to test it is not working.</a>');
});
$('.deletelanguage').live('click',function()){
警惕(“成功”);
$(“#LangTable”).append(“
--------------
现在我的类是deletelanguage。单击我测试它是否工作。”); });
问题在于。单击仅适用于页面上已有的元素。 如果要连接未来的元素,则必须使用类似于
on的内容

$("#LangTable").on("click",".deletelanguage", function(){
  alert("success");
});

我测试了一个适合我的简单解决方案! 我的javascript在一个单独的js文件中。我所做的是将新元素的javascript放入使用ajax加载的html中,这对我来说很好!
这是为那些拥有大量javascript文件的人准备的

谢谢你的回答。但是我想要默认的
a href
ok,
event.preventDefault()
则不是必需的!这已弃用,不应使用。从jQuery1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。较旧版本的jQuery的用户应该优先使用.delegate(),而不是.live()。当然,但有时,当使用较旧版本的jQuery时,live()是唯一有效的,即使是针对delegate()。我也遇到了这个问题,您必须确保在第一个$(“#here”)中使用父id或类然后是按钮“click”之后的实际类。感谢我们的回答,就像@rafaelmsantos所说的,您必须进入一个没有动态添加的父id/类。同样值得一提的是,父元素不应该是AJAX调用的一部分。换句话说,父对象不应该由AJAX调用生成。我也遇到了同样的问题,奇怪的是,在AJAX加载的html末尾插入.js就行了!这不好,那么每次重新加载组件时都会出现重复的js,因为js会从ajax加载的内容中移出!注意这个解决方案。谢谢,它使用$(document)而不是元素本身,然后在.on()参数中声明元素!
$(document).on('click', '.deletelanguage', function () {
    alert("success");
    $('#LangTable').append(' <br>------------<br> <a class="deletelanguage">Now my class is deletelanguage. click me to test it is not working.</a>');
});
$('.deletelanguage').live('click',function(){
    alert("success");
    $('#LangTable').append(' <br>------------<br> <a class="deletelanguage">Now my class is deletelanguage. click me to test it is not working.</a>');
});
$("#LangTable").on("click",".deletelanguage", function(){
  alert("success");
});