Javascript jQuery单击处理程序未在模式窗口内触发
我有一个非常简单的点击处理程序,它在点击时发出AJAXJavascript jQuery单击处理程序未在模式窗口内触发,javascript,jquery,click,modal-dialog,simplemodal,Javascript,Jquery,Click,Modal Dialog,Simplemodal,我有一个非常简单的点击处理程序,它在点击时发出AJAXGET请求,如下所示: $('span.switch-option').click(function() { $(this).parents('div.log-in-option').hide(); $(this).parents('div.log-in-option').siblings('div.log-in-option').fadeIn(); }); 这在网站上的任何其他地方都能完美地工作。但是,当我尝试在模式窗口内
GET
请求,如下所示:
$('span.switch-option').click(function() {
$(this).parents('div.log-in-option').hide();
$(this).parents('div.log-in-option').siblings('div.log-in-option').fadeIn();
});
这在网站上的任何其他地方都能完美地工作。但是,当我尝试在模式窗口内单击带有class开关选项的
元素时,事件不会触发。但是,在控制台中输入click handler函数的内容并运行它们确实会执行所需的行为
为什么单击处理程序不会在此模式窗口中触发?我正在使用流行的SimpleModel插件和jQuery1.9.1
下面是一个实例:。如果您单击50000次
或任何用户的声誉,然后尝试单击对话框中的蓝色大链接,则单击处理程序不会启动。这种行为也发生在不同模式窗口中的其他单击处理程序中。当脚本(main.js)运行元素时,'li.log-in,a.log-in'
在dom中不存在,它们在创建弹出窗口时动态加载,因此jQuery无法绑定事件处理程序
尝试事件传播
$(document).on('click', 'li.log-in, a.log-in', function() {
$.get('/login/', function(data) {
//make a modal window with the html
$.modal(data);
});
return false;
});
现在试试这个。我还更新了初始问题中的JS代码,因为我使用了错误的点击处理程序,但它根本没有改变问题。你是个巫师,这个解释很有道理。我现在觉得自己像个傻瓜了。@wnajar看到更新的答案,你可以在web中搜索动态元素和事件处理,使用jquery有很多问题处理都是一样的,所以它本身和web中的其他资源都是可用的