Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
jQuery选择器对Javascript代码之后出现的选择器有效吗?_Javascript_Jquery_Html_Ajax - Fatal编程技术网

jQuery选择器对Javascript代码之后出现的选择器有效吗?

jQuery选择器对Javascript代码之后出现的选择器有效吗?,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我有一个Javascript代码,可以在点击时完成一些事情,但它什么都没做。它本质上是一个滑动进来的窗格上的按钮。当我点击按钮时,我期待着发生一些事情。但是,这个按钮在AJAX调用完成时填充,因为AJAX调用正在获取包含该按钮的HTML 下面是我设置按钮的代码: $("#btn-delete-setup").on("click", function() { console.log("clicked"); _deleteFunction(); //return false; }

我有一个Javascript代码,可以在点击时完成一些事情,但它什么都没做。它本质上是一个滑动进来的窗格上的按钮。当我点击按钮时,我期待着发生一些事情。但是,这个按钮在AJAX调用完成时填充,因为AJAX调用正在获取包含该按钮的HTML

下面是我设置按钮的代码:

$("#btn-delete-setup").on("click", function() {
  console.log("clicked");
    _deleteFunction();
    //return false;
});
由于Javascript是在AJAX调用中呈现该窗格和按钮之前加载的,这是否意味着该按钮将不会响应我的
.on(“单击”)
代码?我的按钮没有响应是因为当Javascript加载时,它没有找到要绑定到的按钮吗?

但是,这个按钮在AJAX调用完成时填充

因此,这是事件委派的完美案例,这意味着在加载页面时无法绑定元素上的事件,因此您需要将事件委派给最近的静态父级:

$("closestStaticparent").on("click", "#btn-delete-setup" function(e){
     console.log("clicked");
     _deleteFunction();
     //return false;
});
$(“closestStaticparent”)
是页面元素,就像任何div容器/包装器一样,或者说是在ajax调用之前dom中的元素


尽管
$('body'),$(document)或$(document.body)
始终可用于委派活动。

如果您担心按钮未准备好,请尝试:

$(document).ready(function(){
$("#btn-delete-setup").on("click", function() {
  console.log("clicked");
    _deleteFunction();
    //return false;
});
});

希望这有帮助,

因此,您的问题的答案是:不,如果在加载脚本后附加元素(例如,在文档准备就绪时),则此代码将不起作用

但是使用jQuery:)可以轻松实现这一点:

$(document).on("click","#btn-delete-setup", function() {
    console.log("clicked");
    _deleteFunction();
    //return false;
});
本帖向您提供的完整解决方案(副本):