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();
});