2017-01-28 9 views
0

イベントをクラス名keyboxの要素にバインドできます。この要素は動的に生成されます。 動的に作成された要素のjquery(ホバーとロード)イベントバインディング

$('body').on('click','.keybox', function(){ 
// some code here 
}); 

しかし、同じ要素のために、私は次のコードを使用して hoverloadイベントを結合しようとした:

$('body').on('hover','.keybox', function(){ 
// some code here 
}); 


$('body').on('load','.keybox', function(){ 
// some code here 
}); 

....と期待通りのが動作していません。

誰かがこの問題を解決できますか? hoverloadイベントを、クラス名がkeyboxの要素にバインドしたい場合、この要素は動的に生成されます。

+0

? – Roljhon

+0

これを参照してください:http://stackoverflow.com/questions/203198/event-binding-on-dynamically-created-elements – locateganesh

+0

私のJSファイルはクロム拡張の中のコンテンツスクリプトです。実際のページ読み込み後に読み込まれます。すなわち、 'body'がロードされている – Savaratkar

答えて

0

ホバーの代わりにmouseentermouseleaveイベントを使用してください。代わりにbody.loadのあなたが複数のイベントを結合して、event objectを経由して、オブジェクトの情報を取得するには、次のアプローチを使用することができます

$(document).ready(function() { 
0

を使用しています。

$('body').bind('click hover load', '.keybox', function(e){ 
    if (e.type === 'hover') { 
    // do something 
    } 
    else if(e.type === 'click') { 
    // do something 
    } 
    .... 
}); 

あなたは$(document).ready(function() {}内のイベントを結合するか、または単にhtml文書本体の底部にはJavaScriptを読み込むことを確認してください。 hover以来

0

はあなたがonloadreadyに相当します)を使用して、イベントを使用して書くことができますloadためmouseentermouseleaveを使用する必要があり推奨されていません。あなたはどのようにあなたの結合方法を実行している、イベントハンドラをバインドする前にDOMから要素が既に存在していることを確認する必要があり

$(function(){ 
 
    $(document).on('mouseenter', '.keybox', function() { 
 
      $(this).css('color','red'); 
 
    }); 
 
    $(document).on('mouseleave', '.keybox', function() { 
 
      $(this).css('color','black'); 
 
    }); 
 
    $(document).on('click', '.keybox', function() {// click on dynamically loaded events. 
 
      $(this).css('color','green'); 
 
    }); 
 
    $('#btn').click(function() { 
 
      
 
     $('#parent').append("<div class='keybox'>sample1</div>"); 
 
     $('#parent').append("<div class='keybox'>sample2</div>"); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="parent"> 
 
    zdhsdhsau 
 
</div> 
 

 
<input type="button" id="btn" value="create"/>

関連する問題