特定のスパン要素がクリックされたときにクリックイベントをトリガーしたいと思います。スパン要素は、実際にはテーブルの上にあるボタンです。
次の作品:
$("th > span").click(function() {
alert('hi');
});
以下は機能しません。
$("th.sorting > span").click(function() {
alert('hi');
});
th要素のクラスがsortingからsorting_ascまたはsorting_descに変わり、クリックされたボタンのタイプに応じて特定のイベントをトリガーしたいと思います。
アップデート:
興味深いことに、ソースを表示すると、次のものしか表示されません。
<th><span class = 'btn' style = 'width:90%'>Image<span id='i'></span></span></th>
...しかし、firebugを介して「要素を検査」すると、次のように表示されます。
<th class="sorting" role="columnheader" tabindex="0" aria-controls="dispensers" rowspan="1" colspan="1" style="width: 187px; " aria-label="Image: activate to sort column ascending"><span class="btn" style="width:90%">Image<span id="i"></span></span></th>
しかし、これが私の問題の根本ではないと思います。Jqueryが後者の要素コードを認識していると想定しているためです。
(jqueryプラグイン「datatables」は更新されたコードを担当します)
アップデート:
最終コード:
$('th').on('click', '.sorting > span', function() {
$("span#i").html('');
jQuery("span#i", this).html(' <i class=\"icon-chevron-up\"></i>');
});
$('th').on('click', '.sorting_asc > span', function() {
$("span#i").html('');
jQuery("span#i", this).html(' <i class=\"icon-chevron-down\"></i>');
});
$('th').on('click', '.sorting_desc > span', function() {
$("span#i").html('');
jQuery("span#i", this).html(' <i class=\"icon-chevron-up\"></i>');
});
外観: