【问题标题】:Difference between $(document).on and $('#submit').on [duplicate]$(document).on 和 $('#submit').on 之间的区别 [重复]
【发布时间】:2015-03-05 00:19:02
【问题描述】:

请告诉我以下之间的区别。

我不熟悉这种行为。

 $('#myButton').on('click', function () {
            // Some code
        });

$(document).on('keyup', '#myButton', function () {
    // Some Code
});

$('#myButton').click(function () {
    //Some code
});

【问题讨论】:

  • 嘿,您应该在发布问题之前进行适当的研究。
  • 好的,对此我深表歉意,我会牢记这一点。

标签: jquery


【解决方案1】:

来自documentation


委托事件的优点是它们可以处理来自以后添加到文档的后代元素的事件。通过选择在附加委托事件处理程序时保证存在的元素,您可以使用委托事件来避免频繁附加和删除事件处理程序的需要。例如,此元素可以是模型-视图-控制器设计中视图的容器元素,或者如果事件处理程序想要监视文档中的所有冒泡事件,则可以是文档。在加载任何其他 HTML 之前,文档元素在文档头部是可用的,因此在此处附加事件是安全的,而无需等待文档准备好。

在其 tbody 中有 1,000 行的数据表上,此示例将处理程序附加到 1,000 个元素:

$( "#dataTable tbody tr" ).on( "click", function() {
  alert( $( this ).text() );
});

委托事件方法仅将事件处理程序附加到一个元素,即 tbody,并且事件只需要冒泡一个级别(从单击的 tr 到 tbody):

$( "#dataTable tbody" ).on( "click", "tr", function() {
  alert( $( this ).text() );
});

注意:委托事件不适用于 SVG。


另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多