javascript - jQuery.event.handle 未记录且已弃用

标签 javascript jquery jquery-plugins

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

   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 );

最佳答案

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

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

我建议重构整个事情以使用 on 而不是 bind。然后你可以很容易地触发on定义的自定义事件,我不认为使用这种方法你需要定义一个自定义事件所以你可以使代码更小.

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

关于javascript - jQuery.event.handle 未记录且已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17098340/

相关文章:

javascript - 为什么 'keyup' 事件无法在 CSS 中进行更改?

javascript - 由于 $(document).ready,Jquery 函数无法正常工作

jQuery UI 元素与 Dojo (Dijit) 表单元素

jquery - jqGrid 抛出 "Uncaught Syntax error, unrecognized expression: #"

javascript - 无法在 node.js 中加载 js 和 css 文件

javascript - 如何根据度数和坐标绘制椭圆

javascript - 将对象的 *any* 属性设置为默认值

javascript - 有没有办法使用 $ ('...' ).load ('url selector' ) 选择文本节点?

javascript - 重叠项目上的单击功能

javascript - jquery 或 javascript 如何访问 iframe 中的 DOM?