0
$('#sampleid').bind('click', function(e) {
    // a call is made to the plugin to construct a dialog box, the id "someid" is passed as an argument to this plugin
    $('#someid').bind('click', function() {});
}

このクリックイベントがあります。これは最初のクリックでは発生しませんが、2回目のクリック以降は正常に機能します。samplefunction関数は、ダイアログボックスを構成する別のプラグインを呼び出します。「someid」は、このプラグインに引数として渡されます。

最初のクリックに問題があります。最初のクリックでは何も起こりません。もう一度クリックすると、クリックイベントは正しく動作します。

4

3 に答える 3

5

イベントをバインドする場合は、おそらく document.ready に配置する必要があります。

$(document).ready(function () {
    $("#somid").bind("click", function () {
        // do something
    });
});

特定のイベントの後にバインドしたい場合(何かを呼び出すsampleFunctionなど)、その後まで利用できません。sampleFunctionすでに要素のクリックでトリガーしていると思います。

「someid」がページ上にあるときにいつでも利用できるようにする必要がある場合は、次を使用する必要がありますon: http://api.jquery.com/on/

これは、持っている「欠点」を「修正」しbindます。

于 2012-10-04T17:41:31.680 に答える
0

今おすすめだと思いますon

var samplefunction =  function(){
    $(document).on('click', '#someid', function(){
        //do something ;
    });
}
于 2012-10-04T17:43:30.350 に答える
-1

関数のバインド使用の代わりに

 $(document).ready(function() {
        var samplefunction =  function(){
        //  
        $('#someid').on('click',function(){
        do something ;
        });
       }

    });
于 2012-10-04T17:41:14.863 に答える