【问题标题】:In jQuery, what does `this.selector` mean in `$(document).on('click', this.selector, ...)`?在 jQuery 中,`$(document).on('click', this.selector, ...)` 中的 `this.selector` 是什么意思?
【发布时间】:2015-05-21 03:33:31
【问题描述】:

jQuery plugin

我看到这样的表达:

    $( document ).on( 'click', this.selector, this.startImageLightbox);

我知道$("div").click(callback) 是什么意思,但是上面的整个表达式,尤其是this.selector,让我很困惑。

这里的this是什么意思?

有人对此有想法吗?

【问题讨论】:

  • 阅读文档api.jquery.com/on
  • @epascarello 看了文档,但是这里的this不是很清楚..
  • this 取决于此行所在的上下文。this 是当前运行代码的“上下文”。
  • @hanfeisun 看来您需要查看 OOP JavaScript 才能了解 this 的作用域。

标签: javascript jquery dom selector


【解决方案1】:

是jQuery对象的一个​​属性(插件方法里面this指的是jQuery对象),也就是用来查找元素的selector

例如:

$('div').selector -> div
$('div input').selector -> div input
$('div').find('input').selector -> div input

因此,上述代码用于注册一个委托事件处理程序,该事件处理程序针对初始化插件的元素

【讨论】:

    【解决方案2】:

    .on("click", "selector", callback).click()

    .click() 将处理程序直接附加到所选选择器。这意味着源自该选择器或其子项之一的任何事件都将触发回调。

    .on("click", "selector", callback) 将处理程序附加到主体。因为这里的所有元素都是子元素,所以一切都会匹配。但是,第二个参数“选择器”将过滤除此之外的所有内容。如果您在加载完成后向页面添加元素,这将特别有用,因为您不必将处理程序附加到新元素。文档上的处理程序将处理所有内容。

    this.selector

    此 jQuery 插件将您提供的选择器存储为属性。 this 指的是插件,this.selector 指的是该属性。传递给.on() 函数的值几乎可以是任何值。例如".classname""#elementId"

    【讨论】:

      猜你喜欢
      • 2014-02-09
      • 1970-01-01
      • 2015-07-09
      • 2011-11-21
      • 2011-02-17
      • 1970-01-01
      • 2011-08-12
      • 2017-06-11
      • 2018-03-05
      相关资源
      最近更新 更多