0

次のリストがあります。

<ol class="sortable ui-sortable">
    <li id="list_1608"><div>One</div></li>
    <li id="list_1609"><div>Two</div></li>
    <li id="list_1610"><div>Three</div></li>
</ol>

クリックされたidものを取得したい。li次のコードを試しましたが、アラートが表示されません。

$("li").click(function() {
    var myid = $(this).attr("id");
    alert(myid);
});

これをnestedSortable jQueryプラグインと組み合わせて使用​​しています。

どこが間違っていますか?

OK 詳細情報、リスト項目は dom がロードされた後に追加されます。

アイテムが最初から読み込まれている場合は機能しますが、申し訳ありません。

4

5 に答える 5

11

あなたのコードはここで動作しています。コードを入れるか、jQuery ファイルdocument.ready()を追加する必要があるかもしれません。これは JavaScript であり、パフォーマンス上の利点があるため、ここでは代わりに使用することをお勧めします。this.id$(this).attr("id")

$(document).ready(function(){

     $("li").click(function() {
        //var myid = $(this).attr("id");
        alert(this.id);
     });

})
于 2012-11-29T10:22:57.813 に答える
0

これは役立つかもしれません。

$('ol').click(function(event){
if(event.target.tagName == 'li'){alert(this.id);}
if($(event.target).parent('li').length > 0){$(this).parent().attr('id');}
});
于 2012-11-29T10:25:35.593 に答える
0

次の方法で ID を取得できます。

this.id
于 2012-11-29T10:22:39.253 に答える
0

今後の参考のために。上記の答えは静的データに対しては正しかったのですが、要素が DOM のロード後に追加されたことを忘れていました。解決策は実際には..

$("li").live("click", function({
    alert(this.id);
 });
于 2012-12-01T03:48:00.060 に答える
0

headタグ内で最初にjqueryライブラリが正しくロードされているかどうかを確認してください

<script language="javascript" type="text/javascript" src="jquery-1.8.2.js"></script>
<script language="javascript" type="text/javascript">
$(function(){
     $("li").click(function() {
        var myid = $(this).attr("id");
        alert(myid);
     });
});
</script>
于 2012-11-29T10:29:17.980 に答える