Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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 - Fatal编程技术网

Javascript 为什么事件不在jquery中触发?

Javascript 为什么事件不在jquery中触发?,javascript,jquery,Javascript,Jquery,你能告诉我为什么当我在对象中使用选择器时,点击事件没有触发吗; 这是我的密码 当我运行代码时,当我单击按钮时,它会显示一个按钮。一些html会显示和关闭按钮文本。当我单击关闭按钮时,它不是淡出我的html并删除。更新dom后更新配置对象 config.btn.click(function(){ $('#container').append($('#overlay').html()) $('.popupdata').html('<div class="hello">x

你能告诉我为什么当我在
对象
中使用
选择器
时,点击事件没有触发吗; 这是我的密码


当我运行代码时,当我单击按钮
时,它会显示一个
按钮
。一些html会显示
关闭按钮文本。当我单击关闭按钮时,它不是
淡出
我的html并删除。

更新dom后更新配置对象

config.btn.click(function(){
    $('#container').append($('#overlay').html())
    $('.popupdata').html('<div class="hello">xxxx</div>'+
                         '<a href=""  id="closeBtn" >X Close</a></div>');
    config.overlayClick= $('.overlay');
    config.closeBtnSelector = '#closeBtn'
    return false;
  })
config.btn.单击(函数(){
$('#container').append($('#overlay').html())
$('.popUpdatea').html('xxxx'+
'');
config.overlayClick=$('.overlay');
config.closeBtnSelector='#closeBtn'
返回false;
})

问题在于,在将元素添加到页面之前,您正在选择这些元素。将选择器添加到页面后,需要填充它们

....append(...);
....html(...);
config.overlayClick = $('.overlay'); 
...
或者您需要选择项目,而不是使用变量

var config ={
  btn:$('#btn'),
  hello:$('.hello'),
  bodyClickEvent: $("body"),
  overlayClick: $('#overlay'),
  closeBtnSelector: '#closeBtn',
};
因为在调用上面的
$(“#overlay”)
时元素
#overlay
不存在,所以
$(“#overlay”)
返回一个空列表

以下代码应该可以工作:

var config ={
  btn:$('#btn'),
  hello:$('.hello'),
  bodyClickEvent: $("body"),
  overlayClickSelector: '#overlay',
  closeBtnSelector: '#closeBtn',
};

config.bodyClickEvent.on("click", config.closeBtnSelector, function () {         
  $(config.overlayClick).remove();
});

请尝试使用好的语法问题是什么?“为什么这两行不起作用”,“当我单击关闭按钮时,它不会淡出html并删除”,“为什么事件不会在jquery中触发”。有很多错误,抱歉,我试着编辑我的question@Xufox感谢拼写错误,实际上有一个
,但当运行
$('.overlay')
时,它不在DOM中,因此它将为空。
var config ={
  btn:$('#btn'),
  hello:$('.hello'),
  bodyClickEvent: $("body"),
  overlayClick: $('#overlay'),
  closeBtnSelector: '#closeBtn',
};
var config ={
  btn:$('#btn'),
  hello:$('.hello'),
  bodyClickEvent: $("body"),
  overlayClickSelector: '#overlay',
  closeBtnSelector: '#closeBtn',
};

config.bodyClickEvent.on("click", config.closeBtnSelector, function () {         
  $(config.overlayClick).remove();
});