5

我正在使用具有此代码块的插件。但是我收到了这个错误

   JQMIGRATE: jQuery.event.handle is undocumented and deprecated

*原因:jQuery.event.handle 从未被记录在案,并且在 jQuery 1.7 中被弃用(参见http://forum.jquery.com/topic/deprecated-event-properties-used-in-jquery)。从 jQuery 1.9 开始,它已被删除。

解决方案:使用文档化的 jQuery API,例如.trigger. *

handler: function( event, execAsap ) {
    // Save the context
    var context = this,
        args    = arguments;

    // set correct event type
    event.type = "smartresize";

    if ( resizeTimeout ) { clearTimeout( resizeTimeout ); }
    resizeTimeout = setTimeout(function() {
        jQuery.event.handle.apply( context, args ); //here
    }, execAsap === "execAsap"? 0 : 50 );
}

那么,这条线会改成什么?

jQuery.event.handle.apply( context, args );
4

2 回答 2

4

我猜context一定是args传递给该自定义事件的元素和参数,所以也许这样的事情应该有效:

$(this).trigger(event, [args]);

我建议重构整个东西来使用on而不是bind. 然后你可以很容易地trigger自定义事件on,我不认为使用这种方法你需要定义一个自定义事件,这样你就可以使代码更小一些。

http://api.jquery.com/on/

于 2013-06-13T22:44:24.987 回答
2

你可以试试这个:而不是

  jQuery.event.handle.apply( context, args );
  to use

jQuery.event.dispatch.apply( context, args );

这将工作正常...

于 2016-10-21T07:09:42.427 回答