0

以下は私のコードです。ダブルクリックイベントは、jeditableによってキャッチおよび実行されていません。

JavaScript:

$(document).ready(function(){
    $(".edit_area").editable('http://my_cgi_url', {
        event       : 'dblclick',
        type        : 'textarea',
        rows        : 3,
        cols        : 30,
        cancel      : 'Cancel',
        submit      : 'Save',
        indicator   : '<img src="images/indicator.gif">',
        placeholder: 'Double Click to enter text',
        tooltip : 'Double Click to edit...',
        name        : 'comment'
     });


    //Please note there is another peice of code which is capturing clikc events inside the table columns,
    // which goes like this...
    //I doubt it is catching the double-click before the above function....
    //I am not sure how to make the editable catch the doubleclick event??....

    var rowi, coli, cellval;  //global as called in other subroutine too....
    $(".mytbl tbody tr").live('click',function (e) {
        rowi = this.rowIndex;
        coli = e.target.cellIndex;
        cellval = $('tr').eq(rowi).find('td').eq(coli).text();
        var propvalue = $('tr').eq(0).find('th').eq(coli).text();
        //and some other functions.....
    });
});

HTML SAMPLE 1 つのテーブル レコード: edit_area div の ID はテーブル行ごとに一意です。

ページがロードされた後、ajax 呼び出しを介してテーブルが追加されるため、ページロード時に id/div などはページに存在しません。div mytbldiv のみが常にページに存在します。

<div id="mytbldiv">
    <table class="mytbl" border="1">
        <tr><th>header1</th><th>Header2</th></tr>
        <tr><td>A</td><td><div class="edit_area" id="uniqelementid_forthisrow">text_to_edit</div></td></tr>
    </table>
</div>
4

1 に答える 1

0

編集可能なものは、新しいテーブルをページに追加する JavaScript コードで実行する必要があります。そうすれば、要素に正しく取り付けられ、必要に応じて機能します。

于 2012-10-03T23:48:24.563 に答える