1

datatablejqueryプラグインを使用してテーブルを作成しました。以下は使用される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が非推奨になった理由の1つです。

于 2013-02-21T06:42:59.547 に答える
1

試す:

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

.on()を使用してイベントハンドラーを親要素にアタッチし、セレクターを引数として渡します。

于 2013-02-21T06:43:49.903 に答える