Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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
Javascript jquery直接函数不工作_Javascript_Jquery_Delegates - Fatal编程技术网

Javascript jquery直接函数不工作

Javascript jquery直接函数不工作,javascript,jquery,delegates,Javascript,Jquery,Delegates,我在弹出窗口中有这个按钮。(在javascript文件中) 这基本上应该是一个按钮,点击后,关闭弹出窗口。(简单的交叉按钮) 但它不起作用。它不进入函数,我被告知使用委托。但这不是更简单的方法吗?我遗漏了什么?似乎您正在动态创建元素。然后需要使用事件委托 $(document).on('click', '.thisdiv', function (e) { $('.overlay').hide(); $('body').removeClass('overflow'); }); 是

我在弹出窗口中有这个按钮。(在javascript文件中)

这基本上应该是一个按钮,点击后,关闭弹出窗口。(简单的交叉按钮)
但它不起作用。它不进入函数,我被告知使用委托。但这不是更简单的方法吗?我遗漏了什么?

似乎您正在动态创建元素。然后需要使用事件委托

$(document).on('click', '.thisdiv', function (e) {
    $('.overlay').hide();
    $('body').removeClass('overflow');
});

是否正在使用jquery UI对话框?否,它与“更多信息按钮”关联,当单击该按钮时,将显示一个覆盖,我想在该覆盖上添加一个按钮。单击该按钮时,将关闭覆盖层。@Faizan,请尝试
$(“.thisdiv按钮”)。在(“单击”)
。当前函数将事件绑定到div,而不是子级。此外,我建议为按钮提供一个唯一的ID,并在(“单击”)上执行
$(“#btnID”)。这将防止在同一个div中添加另一个按钮并调用此函数时出现这种情况。感谢您提供的提示,但是技巧下面给出了答案。
$('.thisdiv').on('click', function (e) {
       $('.overlay').hide();

        $('body').removeClass('overflow');

    });
$(document).on('click', '.thisdiv', function (e) {
    $('.overlay').hide();
    $('body').removeClass('overflow');
});