1

マウスオーバーで飛び出す div があり、html() を使用してコンテンツを挿入しています。そして、コードの一部を操作せずに残しておきたいです。

<div id="pop_div" ><span>X</span></div>


$("#team_div > ul img").bind('mouseenter',function(){
  $("#pop_div").html('<img src="' + img + '"/>' + content );
 });

そしてonclick私はdivを隠しています。

$('#pop_div span').click(function(){
  $("#pop_div").hide();
});

私の問題は、jqueryがそのタグにイベントを割り当てないため、以下のコードを使用できないことです

$("#pop_div").html('<span>X</span><img src="' + img + '"/>' + content );

(livequery プラグインが使えない)

あなたのコメントに感謝します。

4

2 に答える 2

1

CMSは正しいです。さらに、jQuery 1.3以降では、イベントを現在および将来のすべての要素にバインドするライブ関数でイベントをバインドできます。

$('#team_div > ul img').live('mouseenter',function(){
  $('#pop_div img').attr('src', img); // set the image source
  $('#pop_div #content').html(content); // display the content
});
于 2009-08-03T06:34:13.430 に答える
1

のコンテンツ全体を置き換えています#pop_div。HTML コードを挿入すると、新しい DOM 要素が作成されます。そのため、イベントはバインドされません。

span 要素は DOM から削除され、それに関連付けられたイベントは機能しなくなります。

そのdivのすべてのコンテンツを置き換える必要はないと思います.divを次のように構成できます:

<div id="pop_div" >
  <span>X</span>
  <img/>
  <div id="content"></div>
</div>

マウスで次のように入力します。

$('#team_div > ul img').bind('mouseenter',function(){
  $('#pop_div img').attr('src', img); // set the image source
  $('#pop_div #content').html(content); // display the content
});

画像ソースが変更され、変数がdivcontentに挿入されます。'#content'

span 要素は影響を受けないため、クリック ハンドラーは現在のままです。

于 2009-08-03T05:12:18.557 に答える