1

私は現在、DataTableとダイアログを使用しています。ただし、ダイアログウィンドウは最初のクリックでのみ開くようです。さらにクリックするたびにWebサイトが開きますが、ダイアログウィンドウは開きません。

誰かが失敗を見ることができますか?次のようなコード

<script type="text/javascript" charset="UTF-8">
$(document).ready(function() {
    function DialogInformation() {
        var $link = $(this);
        var $dialog = $('<div></div>').dialog({
                autoOpen: false,
                title: $link.attr('title'),
                width: 800,
                height: 400,
                modal: true,
                open: function ()
                {
                    $(this).load($link.attr('href'));
                }
            });
        $dialog.dialog('open');
        return false;
    };

    $('##named_datatable').dataTable( {
        "iDisplayLength": 10,
        "bInfo" : false,
        "bProcessing": false,
            "bServerSide": false,
        "sAjaxSource": 'getLists',
        "sPaginationType": "full_numbers",
        "aoColumns": [
            { "mDataProp": "Title" , "sTitle": "Titel"},
            { "mDataProp": "Info", "sTitle": "", "sClass": "info", "mRender": function ( data, type, row ) {
                return '<a href="getLists/'+ data +'" title="Information -'+ row.Title + '" class="info">Info</a>'; }
            },
            { "mDataProp": "Min" , "sTitle": "Min"},
            { "mDataProp": "Price" , "sTitle": "Preis"},

        "fnDrawCallback": function() {
            //bind the click handler script to the newly created elements held in the table
            $('tbody td.info a.info').bind('click',DialogInformation);
        }
    } );
} );

4

1 に答える 1

1

.bind()は、クリックイベントを「domready」に添付します。このように.onを使用してイベントハンドラーをアタッチします

$('tbody').on('click', 'td.info a.info',DialogInformation);
于 2013-02-13T02:38:07.203 に答える