0

初めての投稿ですが、ここからの有益なアドバイスをしばらくフォローしてきました。

私は自分で作成していないいくつかの Jquery 関数を介してソートされているテーブルを持っているので、それがどのように動作するかわかりません。ヘッダー列をクリックすると、最初にその列でテーブルがソートされ、次に下にソートされます-標準的なものです。これは一連のチェックボックスであり、並べ替えがモバイルのチェックオール機能に干渉しているため、最初の列の並べ替えを削除したいと思います。

次のスクリプトを使用してみました。最初に並べ替えクラスを削除し、次にクリック機能を削除しようとします。クラスは削除されています (javascript は機能しています) が、新しいクラスが割り当てられている時点でまだヘッダーをクリックできるため、この removeAttr は実際には機能していません (これは私がこのサイトで見つけた解決策でした)。

<script>
!function ($) {   
    $(function(){   
        $('th:first-child').removeClass( "sorting" );   
        $('th:first-child').removeAttr('onclick');
    })
}(window.jQuery)
</script>

感謝して受け取った助け。どうもありがとう、DomC

4

2 に答える 2

4

うまくいかない理由.removeAttr('onclick')は、おそらくいくつかの .js ファイル (適切な場所です!) にグローバルなイベントハンドラーがあるためです。onclick はインライン JavaScript になりますが、これはダメです。

グローバルイベントハンドラーリストからそれを取得するには、jQuery を使用します.off():

// this removes all functions bound on the 'click event
$('th:first-child').off('click');

または、古いバージョンの jQuery を使用している場合は、次のようにします.unbind()

// this removes all functions bound on the 'click event (older jQuery example)
$('th:first-child').unbind('click');

または、1 つの機能のみをオフにする場合は、次のようにします。

// If ´otherFunction´ is bound to click aswell, it will remain working
$('th:first-child').off('click', functionname);

または、すべてのイベント (つまり、クリック、ホバー、サイズ変更) を削除します。

// Or the big cleanup, this clears ALL functions from ALL events
$('th:first-child').off();
于 2013-10-08T19:15:35.483 に答える