0

以下は私が持っているdivです:

<div class="grey-column" id="infoblock1" data-type="datahere"></div>
<div class="green-column" id="infoblock2" data-type="datahere"></div>
<div class="red-column" id="infoblock3" data-type="datahere"></div>

クリックされた要素のIDを見つけようとしています.次のコードがあります:

$(function(){
    $('.green-column, .red-column, .grey-column').click(function() { 
         id_clicked = this.id; 
         var id_final = '#';
         id_final += id_clicked;
         $("<div>" + $(id_final).attr("data-type") + "</div>").dialog();
    });
});

したがって、ユーザーが div をクリックするたびに、クリック関数が起動され、クリックされた要素の ID が検出されます。しかし、 attr() 関数はここでは機能していないようです。私を助けてください。

4

3 に答える 3

2

DOM 要素がクリックされるため、その属性を取得するために をthis間接的に通過する必要はありません。idただ:

$(function(){
    $('.green-column, .red-column, .grey-column').click(function() { 
         $("<div>" + $(this).attr("data-type") + "</div>").dialog();
    });
});

フィドルの例

ただし、厳密モードでない場合 (変数を宣言しないことによって暗黙的グローバルの恐怖の餌食になるという事実を除けば) 、コード機能するため、JavaScript コンソールなどを調べて確認する必要があります。他に何が起こっているのか、それが正しく機能するのを妨げています。id_clicked

于 2013-03-16T14:18:48.440 に答える
0

試す:

$(function(){
 $('.green-column, .red-column, .grey-column').click(function() { 
     $("<div>" + $(this).data("type") + "</div>").dialog();
 });
});

クリックされた要素の使用$(this)を取得し、data-type値の使用を取得するには.data()

于 2013-03-16T14:18:49.267 に答える
0

これを試して :

$(function(){
    $("div").click(function(){
        var div_id = $(this).attr("id");
        $("<div>" + $("#"+div_id).attr("data-type") + "</div>").dialog();
    });
});

デモ: http://jsfiddle.net/7gxeY/1/

于 2013-03-16T14:19:04.487 に答える