2

私はjQueryとjQueryuiを使用しています。以下は私のマークアップです:

<div id="content">   
   <ul id="sortable">             
    <li class="button_tab"><div id="select_me">Select Me</div></li>
    <li class="button_tab"><div id="select_me_1">Select Me 1</div></li>
    <li class="button_tab"><div id="select_me_2">Select Me 2</div></li>           
  </ul>  
</div>

jquery:

 $( ".button_tab" ).button(); 

クリックイベントでid="select_me"を取得しようとしていますが、button()関数が特定のクラス名を挿入し、それを正しく選択できないため、何も起こりません。

 $('div#content ul#sortable li.button_tab div').click(function() {
   alert($(this).attr('id'));        
 }); 
4

2 に答える 2

3

指定されたコードは正常に機能します。ただし、それらを呼び出す順序は重要です。

.button()click論理的には「クリック」を処理することになっているため、 すべてのイベントをクリアします。clickだから、子供たちのために再びカスタムイベントを有効にするために。click呼び出した後、イベントリスナーを作成する必要があります.button()

  1. $( ".button_tab" ).button();
  2. $('div#content ul#sortable li.button_tab div').click(function() { alert($(this).attr('id'));
    });

または、Jqueryで.on() 動的イベントリスナーを利用して作成することもできます。click

于 2012-05-10T19:34:32.087 に答える
1

試す

$("#sortable li.button_tab div[id^='button_tab']").click(function() {
   alert($(this).attr('id'));        
}); 

また

$("#sortable li.button_tab").click(function() {
   var div_id = $(this).find("div[id^='button_tab']").attr("id");
   alert(div_id);        
}); 
于 2012-05-10T19:27:38.127 に答える