我有一个非常简单的点击处理程序,可以在点击时发出AJAX 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();
});
这适用于网站上的任何其他地方。但是,当我尝试在模式窗口中单击具有类<span>
的{{1}}元素时,事件不会触发。但是,在控制台中输入click-handler函数的内容并运行它们会执行所需的行为。
为什么点击处理程序不会在此模态窗口中触发?我使用流行的SimpleModal插件http://www.ericmmartin.com/projects/simplemodal/和jQuery 1.9.1。
这里有一个实例:http://ec2-107-22-8-70.compute-1.amazonaws.com/thread/19。如果单击switch-option
或任何用户的声誉,然后尝试单击对话框中的蓝色大链接,则单击处理程序不会触发。在不同的模式窗口中,其他单击处理程序也会发生此行为。
答案 0 :(得分:1)
当您的脚本(main.js)运行时,dom中不存在元素'li.log-in, a.log-in'
,它们会在创建弹出窗口时动态加载,因此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;
});