Skip to content

事件处理时传递数据 #84

@Superman-wc

Description

@Superman-wc

var w = Widget.extend({
events: {
'init [data-banner]' : function(event, data){
console.log(data); // 不能传递data
}
}
})

w.$('div').trigger('init', {a:'b'}); 在内部触发jQuery的自定义事件时, widget 事件处理是接收不到data

在widget.js 的170行上下修改代码可以解决这个问题
var callback = function(ev) {
if (isFunction(handler)) {
handler.call(widget, ev)
} else {
widgethandler
}
}
将上面代码修改为
var callback = function(ev, data) {
if (isFunction(handler)) {
handler.call(widget, ev, data || ev._args)
} else {
widget[handler](ev, data || ev._args)
}
}

使用 jQuery时,有data可以传递,
使用Zepto时,ev._args 就是 trigger 时传递的data

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions