【发布时间】:2014-05-02 18:07:15
【问题描述】:
我的 global.js 文件中有这个函数,代码如下:
$("a.dialog-page").click(function(event) {
event.preventDefault();
$this = $(this);
var URL = $(this).attr('href');
var dialogbox = document.getElementById('dialog');
var dialogOptions = {
width: 500,
height: 200,
modal: true,
close: function(event, ui){
$('#dialog').empty();
}
};
if(dialogbox==null) {
$this.after("<div id=\"dialog\"></div>");
}
jQuery('#dialog').load(URL + " #content").dialog(dialogOptions);
});
我已经动态生成了带有以下标记的 HTML:
<div id="dynamic-id">
<a class="dialog-page" href="/test/test.php">Link to test</a>
</div>
这是来自我的 local.js 文件的链接的点击触发器:
$('#dynamic-id').on('click', 'a.dialog-page', function(event){
event.preventDefault;
});
问题是点击链接时,它没有调用 ("a.dialog-page").click 事件,它会加载我的模态窗口。
我该如何解决这个问题?
谢谢 干杯
【问题讨论】:
-
您所有的事件处理程序代码都应该在您调用“点击触发器”而不是第一个函数的代码中。
-
对于同一个“a.dialog-page”选择器,您有 2 个点击处理程序!只需按照@Pointy 的建议使用一个。
-
@Pointy 点击触发器是什么意思。你是指把代码放在 $('#dynamic-id').on('click', 'a.dialog-page', function(event){ // code in here });
标签: javascript jquery binding onclick