【问题标题】:mean of .on( events [, selector ] [, data ], handler ) [duplicate].on(事件[,选择器] [,数据],处理程序)的平均值[重复]
【发布时间】:2015-04-04 08:47:24
【问题描述】:

我正在阅读jquery on 方法 方法签名是.on( events [, selector ] [, data ], handler )

所以这意味着它基本上接受 4 个参数

我不明白events [是什么意思(为什么要开方括号) 同样在这里selector ] [ 和这里data ]

【问题讨论】:

  • 这意味着参数是可选的
  • @Vohuman ]、][ 和 [?
  • @SpringLearner:他们已经回答了你——你为什么要重复你的问题?
  • [, selector] 一样阅读。 selector 是可选参数。
  • 两个参数是必需的 eventshandler。这就是为什么它们被 , 分隔,但所有其他中间参数都是可选的,这就是为什么你会看到 [, ]

标签: javascript jquery


【解决方案1】:

这意味着这两个参数是可选的。您可以在调用.on() 时指定这些参数组合中的任何一种:

.on( events, selector, data, handler )
.on( events, selector, handler )
.on( events, data, handler )
.on( events, handler )

请注意,如果您同时指定selectordata,则必须按顺序指定它们。尽管有可选参数,但必须保持参数的一般顺序。

此外,由于 JavaScript 是动态类型的,因此无论您是否指定接受字符串的 selector,都会影响 data 可以具有的值类型(普通对象、函数等)。有关详细信息,请参阅 cmets。

【讨论】:

  • 值得一提的是,如果没有指定选择器,data 不能是String(因为它将被视为选择器)。 Fiddle example。当dataFunction 时,异国情调的情况似乎有效。
  • @Regent 是的,data 也可以是一个函数。 stackoverflow.com/questions/29266604/…
  • 另请注意,处理程序参数(参见第二个函数签名)也是可选的。所以,这也是完全有效的:$('body').on('click)(虽然可能没有多大意义)。所以,我想唯一真正的混淆来源是为什么可选参数选择器和数据使用方括号记录,而可选处理程序参数是通过给函数两个签名来记录的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-12-07
  • 2020-07-22
  • 1970-01-01
  • 2012-01-26
  • 1970-01-01
  • 2013-07-04
相关资源
最近更新 更多