- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
也许我失去了理智,或者也许我错过了备忘录。我总是使用$(selector).click
对于任何和所有点击事件,除非我与事后添加到 DOM 的元素进行交互。在这种情况下,我使用了类似 $(closest permanent parent).on('click',selector
的东西.
我看到这里有很多人只使用 . on()
对于一切。我错过了 .on()
的好处吗?或者其他的东西?对我来说这似乎是不正确的。我已阅读文档,但没有理由使用 .on()
与 .click()
.
与静态 DOM 元素交互时是否严格偏好?
编辑
显然我不清楚。我了解 .on()
的用途用于动态生成的元素。我的问题是Why use it for static elements
?
最佳答案
.click()
定义*为:
jQuery.fn.click = function( data, fn ) {
return arguments.length > 0 ?
this.on( 'click', null, data, fn ) :
this.trigger( 'click' );
click
只是 on
函数的一部分,因此就性能而言,.on()
稍快一些。也就是说,差异可以忽略不计,这并不是我更喜欢 on
而不是 click
的真正原因。
我坚持使用 on
而不是 click
的真正原因是为了可维护性。通常我会通过绑定(bind) .on('click', ...)
方法来启动插件,然后将其更改为 .on('widgetaction', ...)
事件由点击触发,但也可以由按键
或任何其他相关事件触发。
坚持使用 .on()
函数还意味着我可以轻松返回并从 .on('click', ...)
更改为 .on('click', 选择器, ...)
无需付出太多努力。
总的来说,这取决于一致性,我发现 .on()
使用起来比 .click()
更一致。
* 我修改了 source code稍微具体引用一下点击事件,原始未修改版本请引用 jQuery v1.10.2 第 7554-7564 行。
关于jquery - .on ('click' ) VS 'selector.click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20749931/
我想知道这两者之间有什么不同 .myClass/DomElement .myotherclassinsidethatelement 和 .myClass/DomElement > .myothercl
使用 jQuery on() 版本 1.7。我通常这样绑定(bind)我的事件: $(".foo").on("click", function() { console.log("foo cli
我想找到与选择器匹配的所有元素,但如果它已经包含在匹配元素中则不查找。 $('#container').find('.child').not('.child .child'); 请注意,.child
我有一个看起来像这样的无序列表,但更广泛: Parent Category 2 Parent Category 2 Parent Category 3
这个问题在这里已经有了答案: CSS negation pseudo-class :not() for parent/ancestor elements (2 个答案) 关闭 4 年前。
我希望使用 CSS :not() 来定位 before 选择器。这可能吗? 示例: https://jsfiddle.net/uuq62b8d/ a.button:before { content
这有什么区别: $.each($('#myTable input[name="deleteItem[]"]:checked').do_something()); 还有这个: $('#myTable i
已关闭。这个问题是 not reproducible or was caused by typos 。目前不接受答案。 这个问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-top
我正在使用 UL LI 列表和 jQuery 创建一棵树。我使用了 jQuery 选择器 jQuery(li:has(ul)) 查找所有具有子节点的列表节点,然后向其添加单击事件。 jQuery(li
我真的不知道如何命名这两种方法,所以请原谅我这样调用它们。 字符串选择器 $("#myList li").eq(3); 函数选择器 $("#myList li:eq(3)"); 据我所知,他们都做同样
我有以下代码: .. 我正在使用以下 CSS 来排除具有“main-l tbl”类的表: table:not(.main-l .views-table) { .. } 我注
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: What is the difference between $ and jQuery 我注意到使用“jQuery(
我有许多 css 选择器和许多选择器异常,所以我使用 :not 将它们排除在外... 示例(只是一些我不需要的选择器): [class*="-dashboard-"]:not([class$="-bi
CADisplayLink 有这个方法是有道理的,但我很好奇为什么 UIScreen 也会有它。 最佳答案 文档说屏幕提供的显示链接与该屏幕相关联。但是,查看官方文档,与任何屏幕都没有明显的关系;显示
我在这里阅读了关于 toArray() 的文档,并在控制台中对其进行了测试。我找不到在选择器上调用 toArray() 和调用选择器本身之间的区别。 两种方式都得到了完全相同的结果,这是一个与选择器匹
我有一个问题,为什么这两个代码片段不同。 $('#ctl00_DDMenu1_HyperLink1') //jQuery(a#ctl00_DDMenu1_HyperLink1 Default.asp
我想通过以下方式模拟我可以在 jQuery 中实现的目标$('.someClass:not(.hidden)') 我试过下面的代码。 $crawler->filter('someClass:not(.
这个问题不太可能对任何 future 的访客有帮助;它只与一个较小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,通常不适用于全世界的互联网受众。如需帮助使此问题更广泛适用,visit the
我想通过以下方式模拟我可以在 jQuery 中实现的目标$('.someClass:not(.hidden)') 我试过下面的代码。 $crawler->filter('someClass:not(.
我想根据 Iterator::next 中当前枚举变体的某些属性更改枚举变体。我有两次尝试,都没有编译: enum Test { A(Vec), B, } impl Iterator
我是一名优秀的程序员,十分优秀!