0

メインコンテンツ領域から小さなdivに要素を固定できる機能を実装しようとしています。この機能は期待どおりに機能します。

$('.pin').bind('click', function() {
  $('#sbStar').prepend($(this).parent().parent().parent('.leaf').clone(true));
});

編集:Vegaの提案に従って、clone()をclone(true)に変更すると、以前の問題(以下)が修正されましたが、完全には解決されていません。現在、展開ボタンを取得して、それが#sbStarにあるか、メインコンテンツ領域にあるかに応じて異なる動作を実行しようとしています。残念ながら、これ('#sbStar .expand')はまだ機能しません。

$('#sbStar .expand').bind('click', function() {
  console.log('expand');
});

参考までに、HTML:

<article class="leaf">
  <footer>
    <aside class="left">
      <a href="#" class="expand">E</a>
      <a href="#sbStar" class="pin">P</a>
    </aside>
  </footer>
</article>

元の問題:$('。expand')。bind('click'、function(){console.log('expand');});

4

1 に答える 1

2

次のいずれかを実行して、問題を修正できます。

a。使用clone(true)-trueは、イベントハンドラーとデータを要素と一緒にコピーする必要があるかどうかを示します。

b。の後にイベントハンドラー関数をバインドしcloneます。

function myHanlder() {  console.log('expand'); }

.clone().bind('click', myHandler);

c。委任されたイベントを使用します。

$('#sbStar').on ('click', '.expand', function () { ... });
于 2013-02-11T21:31:01.777 に答える