0

私はアイデアを持っています。ボタンをクリックしてバインドしていくつかの機能を実行したいのですが、dom の準備ができたらバインドしないでください。コーディング方法は?
ほとんどの js 関数には click event があります。通常、これらの関数に名前を付けてから
window.addEvent("domready",function(){fn();});を追加します。
dom の準備ができたらそれを機能させるために
、そのようにすることは私にとって良い習慣ですか?

この方法はより良いですか?
ドムの準備ができたときにクリックイベントをバインドするのではなく、ユーザーが場所をクリック
すると、相対イベント fn をすばやくバインドして実行し
、この方法でブラウザーのリソースを節約できますか? dom の準備ができたときにすべてのものをバインドするわけではないため
、ユーザーがその場所をクリックしない場合があるため、イベントをバインドする意味がありません。
この方法の方が良い場合は、クリックしてバインドして実行するときにコーディングする方法を教えてもらえますか?

ここに画像の説明を入力

<script type="text/javascript" src="http://localhost/bvtemplates/y01/includes/templates/y01/jscript/jscript_010_mootools.js"></script>\
<script type="text/javascript">
    /* ------- 
        most of my js function has click event , I normally name these functions and then add
        window.addEvent("domready",function(){fn();});
        to let it works when dom is ready
        Is it a good habit for me doing it like that?

        Is this way bellow better?
        not to bind the click event when dom ready, but when user click the place, 
        quickly bind the relative event fn and run
        should this way save the resource of browser? for it will not bind all things when dom ready, 
        sometimes the user will not click the place at all ,so there is no meaning to bind the event.
        If better this way, any one can tell me how to code when click then bind and run?
    ------- */

    function a(){
        $$('.a').addEvent('click', function (){
            alert('a');
        });
    }
    window.addEvent("domready",function(){a();});

    function b(){
        $$('.b').addEvent('click', function (){
            alert('b');
        })'
    }
    window.addEvent("domready",function(){a();});
</script>
<button class="a">a</button>
<button class="b">b</button>
4

2 に答える 2

1

そのようにすることは私にとって良い習慣ですか?

はい。ただし、他にも利用可能な戦略があります。どちらが最適かは、要件と、各方法の機能が状況に適しているかどうかによって異なります。しかし、あなたの現在の戦略は問題なく、一般的に実装されています。

この方法はより良いですか?ドムの準備ができたときにクリックイベントをバインドするのではなく、ユーザーがその場所をクリックすると、関連イベント fn をすばやくバインドして実行します

いいえ、リスナーを追加するためにリスナーを追加することになりますが、これは意味がありません。また、イベントがディスパッチされたときに呼び出されるリスナーには、独自のイベント管理フレームワークを実装しない限り、提案された方法を使用して複製するのが難しいイベント オブジェクトが関連付けられています。あなたはそれをしたいですか?

この方法でブラウザのリソースを節約する必要がありますか?

いいえ。イベント委任など、ドキュメント内のリスナーの数を減らす方法は他にもあります。

dom の準備ができたときにすべてのものをバインドするわけではないため、ユーザーがその場所をクリックしない場合があるため、イベントをバインドする意味がありません。

ブラウザーは無数のイベントをディスパッチしますが、かなり効率的です。パフォーマンスに問題がある場合は、その問題に対処してください。

于 2012-11-28T03:53:12.137 に答える