このような jQuery コードをたくさん見てきましたが、言うまでもなく、好きではありません。
<div id="myDiv">
    <a class="clickable" href="#">Click Me</a>
    <a class="clickable" href="#">Click Me</a>
    <a class="clickable" href="#">Click Me</a>
    <a class="clickable" href="#">Click Me</a>
</div>
<script>
    $(document).ready(function(){
        $('clickable').click(function(){
            // Do some stuff...
        });
    });
</script>
上記のイベントのバインドと処理では、ページ上で html 構造を使用できるようにする必要があるため、人々がこれを行っていることは理解していますが、Web サイトのビュー全体でプレゼンテーション、ロジック、および構成が混在することになります。また、そこにあるほぼすべてのデバッガーでロジックをデバッグするのが非常に難しくなります。
だから、私は別の .js ファイル(ここでフィドル)で、このようなコーディングを開始しました:
// BEGIN: Event Handlers
    var onLoad = function(){
        $('.clickable').data('clicked', false);
    };
    var onMyDivClick = function(){
        var clicked = $(this).data('clicked');
        if (clicked) {
            $(this).trigger('myCustomEvent');
        } else {
            alert('you clicked me');
            $(this).data('clicked', true);
        }
    };
    var onMyCustomEvent = function(){
        $(this).css('color', 'dimGray');
        alert('please don\'t click me again');
    };
// END: Event Handlers
// BEGIN: Event Binding
    $(window).on('load', onLoad);
    $(document).on('click', '.clickable', onMyDivClick);
    $(document).on('myCustomEvent', '.clickable', onMyCustomEvent);
// END: Event Binding
これで、ページ上の構造を気にする必要がなくなりました。すべてをラップする必要はあり$(document).ready(function(){});ません。また、構造体が ajax でロードされるかどうかを気にする必要もありません。
質問 1 このアプローチにマイナス面はありますか? これまでのところ、私は何も見つけていません。しかし、私たちのサイトのコードの大部分をリファクタリングする前に、考えられる注意事項について聞きたいと思います.
質問 2 最新の jQuery 機能を使用して、このアプローチをさらに進めるにはどうすればよいですか?