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

您可以执行以下操作之一来解决您的问题,

一个。使用clone(true)- true 指示是否应将事件处理程序和数据与元素一起复制。

湾。在 . 之后绑定事件处理函数clone

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

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

C。使用委托事件。

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