是否可以在自定义事件中覆盖jQuerys target
?
f.ex:
var scope = function() {
this.param = 'foo';
}
var instance = new scope();
$(instance).bind('bar', function(e) {
console.log(e.target);
});
$(instance).trigger('bar');
这将输出整个实例对象。
但如果我希望目标成为别的东西,比如param
,我可以尝试:
var scope = function() {
this.param = 'foo';
}
var instance = new scope();
$(instance).bind('bar', function(e) {
console.log(e.target);
console.log(e.customTarget);
});
$(instance).trigger({
type: 'bar',
target: instance.param, // override attempt
customTarget: instance.param
});
这会将 customTarget 输出为'foo',但目标保持不变。
我需要覆盖目标,但似乎不可能?我也尝试通过jQuery.Event
这样做而没有运气。
任何?
答案 0 :(得分:3)
你不能只传递customTarget并在被调用的eventhandler中重新分配目标吗?
var scope = function() {
this.param = 'foo';
}
var instance = new scope();
$(instance).bind('bar', function(e) {
e.target = e.customTarget;
// do stuff
});
$(instance).trigger({
type: 'bar',
customTarget: instance.param
});