【问题标题】:jquery event namespace beginner examplejquery 事件命名空间初学者示例
【发布时间】:2014-10-28 17:06:56
【问题描述】:

所有,
我正在学习基于 http://api.jquery.com/on/#event-names 的 jquery 事件命名空间
但是,我仍然对如何自定义事件命名空间以及如何向选定对象触发自定义事件感到非常困惑。
有人可以给我写一个很好的例子,这样我就可以理解如何更好地使用事件命名空间?

谢谢。

【问题讨论】:

    标签: jquery namespaces eventhandler


    【解决方案1】:

    也许是这样的?

    <p>Has an attached custom event.</p>
    <button>Trigger custom event</button>
    

    和:

    $( "p" ).on( "click.myNameSpace", function( event, blah ) {
        alert(blah);
    });
    $( "button" ).click(function () {
        $( "p" ).trigger( "click.myNameSpace", [ "Wheee!" ] );
    });
    

    【讨论】:

    • 谢谢你的例子。我把它放到 JSFiddle 中。 jsfiddle.net/matildayipan/s2jqs8wk/1 但是,我不明白为什么单击“p”时会出现警报。我可以将 click.myNameSpace 更改为 myClick 吗?
    • 据我了解,命名空间的意义在于您可以添加和删除处理程序,而不会干扰可能附加到对象的任何其他处理程序。我认为这对框架/库/等的编写者最有用,因为他们不知道在他们使用的环境中还会发生什么。
    • 如果你调用你的事件myClick它仍然是一个附加到“p”的处理程序,它仍然可以被代码$( "p" ).trigger(...)触发,但是由于它不是一个点击处理程序,点击在“p”上不会触发它。这可能是也可能不是您想要的。
    • 我通过调用命名空间“myClick”更新了示例。您之前提到的广告,我可以添加或删除处理程序。使用 .on() 是将处理程序添加到单击事件中,您是否使用 .off() 删除处理程序?这是更新的示例:jsfiddle.net/matildayipan/s2jqs8wk/4
    猜你喜欢
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 2015-08-28
    • 1970-01-01
    • 2011-11-05
    • 2013-06-06
    相关资源
    最近更新 更多