0

誰かが私にここで手を差し伸べてくれることを願っています...

サーバーから返されるjsonデータ内でHTMLを返すようにDataTablesjqueryプラグインを設定しています。行のデータの例は次のようになります。

["<input type='checkbox' id='2' />","<img src='images/playbtn.png' width='24' height='24' /><a href='javascript:void(0)' onClick='openDialog(0)'>oK5ktqWTOsiyP5wH75tFj2yIY8XprWOwB</a>","11/18/2010 08:16:28 PM","juan j","juan j","incoming","00:02:38","","<img src='images/share.png' class='tableimage' title='Share Call With Friends' /> <img src='images/download.png' class='tableimage' title='Download Call' /> <img src='images/page_edit.png' class='tableimage' title='Edit Call Info' /> <img src='images/trash.gif' class='tableimage' title='Delete Call' />"]

表示は正常に機能しており、すべてのデータが正常に返されています。

最初のタグの目的は、jqueryダイアログウィンドウを開くことです。jqueryを適切に設定し、正しく記述されていることを知っています。ただし、私の問題は、DataTableのセル内のリンクをクリックしても何も起こらず、firebugに「セキュリティエラー」コード「1000」が表示され、関数に入力したアラートが発生しないことです。このエラーの意味はわかりませんが、最初はページに多くのdivが含まれている結果だと思いましたが、グリッドとdivのみが含まれているページの簡単な例を作成しました。ダイアログボックスとして表示されます。それも機能しませんでした。この種のエラーがDataTableによってトリガーされる理由を誰かが知っていますか?

ありがとう!

4

1 に答える 1

0

このセキュリティ エラー コードが表示される理由はわかりませんが、テーブル セル内にインライン JavaScript を追加する代わりに、テーブルにクリック イベント ハンドラーをアタッチし、イベント デリゲーションを使用してイベントを処理することを試すことができます。次に例を示します。

$('table').delegate('a', 'click', function(e) {

    openDialog(0);

    // note: 'this' is the 'a' DOM element, so you can do additional things with it.  For example:
    var $a = $(this);
    var href = $a.attr('href');
    // now do something with href

});

私はこの手法を DataTables で使用してきましたが、うまく機能します。

于 2010-12-23T14:16:04.890 に答える