-1

我有一个问题,我有以下 jQuery 并标记工作,尽管如果我移动事件的位置textarea不会.click()触发。我以前没见过这个$('element', something)。请问$wrapper语法是什么意思?谢谢,

 this.each(function () {
     var $field = $(this);
     var $wrapper = $field.parent();


      $('.myClass', $wrapper)
          .click(function () { 
              // do stuff
          });

<div>
  <textarea></textarea>
  <img src="x" class="myClass" />
</div>
4

1 回答 1

0

该答案假定$(this)指的是textarea,这在您的问题中并不清楚。

in 中的第二个参数是$('.myClass', $wrapper)指第一个参数的上下文。也就是说,第一个参数是第二个参数的后代。

如果$field是您的文本区域,则上下文.myClass是 的父级textarea(因为这就是您定义的方式$wrapper)。

如果您将textarea移出也包含 的 DIV .myClass,则您的上下文会发生变化。由于.myClass不再处于该上下文中,因此事件处理程序未绑定到它。

如果您希望 click 事件绑定到.myClass不考虑上下文,请使用:

$('.myClass').click(function () { 
     // do stuff
});
于 2013-06-27T10:41:04.483 回答