javascript - 为 jQuery 特殊事件添加自定义参数

标签 javascript jquery

我正在编写一个 jQuery 事件插件,我需要将一些数据传递给一个参数。所以如果我这样使用它:

$(element).on('myevent', function(event, myargument) { console.log(myargument); });

我不想获取 myargument 对象及其在处理程序中设置的属性(例如 name)。

那么这将如何与下面的代码一起工作?

SmartScroll.myevent = {
    setup: function() {

        var myargumentData,
            handler = function(evt) {
                var _self = this,
                    _args = arguments;

                // The data I wan't to get
                myargumentData = {
                    name: "Hello"
                };

                evt.type = 'myevent';
                jQuery.event.handle.apply(_self, _args);
            };

        jQuery(this).bind('scroll', handler).data(myargumentData, handler);

    },

    teardown: function() {
        jQuery(this).unbind('scroll', jQuery(this).data(myargumentData));
    }
};

最佳答案

您可以修改传递给 add 的对象。

$.event.special.foo = { add: function(h) {
    var hh = h.handler;
    h.handler = function(e, a) {
        hh.call(this, e, a * 2);
    };
} };

现在,让我们绑定(bind)事件:

$("body").on("foo", function(e, a) {
    console.log(a);
});

触发事件,看看会发生什么:

$("body").trigger("foo", [ 10 ]); // 20

关于javascript - 为 jQuery 特殊事件添加自定义参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13385254/

相关文章:

javascript - URL 太长 - 如何在 jquery 中对 anchor 标记执行 POST

javascript - 如何在 Javascript 中创建动态数组变量

javascript - jQuery 重复数组循环以更改标签属性

javascript - 如何在鼠标悬停事件的圆环图上显示文本

javascript - 访问下游早期 promise 中的变量

javascript - 使用 RxJS 组合函数/运算符

javascript - 如何分配数组中的所有对象?

javascript - 返回带有 Node 的原始 html(只是 html 到 var 中)

jquery - 在悬停时对齐 datepicker div 并选择

jQuery Ajax - 查询字符串参数可以与请求正文分开设置吗?