1

我使用 datatable jquery 插件创建了一个表。以下是使用的json

{
"aaData":[{
"Month": "Jan-2013",
"Comments": "",
"Details": " <button class='dialog-link'>View</button>"
}]
}

因此,正如预期的那样,创建了一个按钮。

然后我对此进行了一些jquery操作

 $(".dialog-link").click(function (event) {
    console.log("clicked");
    window.open('details.aspx', 'winname', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=850,height=650');
    return false;
});

此功能不起作用...调试中没有错误,但父窗口被刷新并且没有子窗口(details.aspx)被打开......这里有什么问题

4

2 回答 2

2

试试这个,而不是:

$(document).on('click', ".dialog-link", function (event) {
    console.log("clicked");
    window.open('details.aspx', 'winname', 'directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=850,height=650');
    return false;
});

.click() 有一种恼人的倾向,即不处理页面加载事件完成后动态添加到 DOM 的元素。这就是不推荐使用 .click、.bind 和 .live 的原因之一。

于 2013-02-21T06:42:59.547 回答
1

尝试:

 $(document).on('click', '.dialog-link', function() { ... });

使用 .on() 将事件处理程序附加到父元素,并将选择器作为参数传递。

于 2013-02-21T06:43:49.903 回答