如果我在这里不是很清楚,请原谅我。我试图通过做一次学到很多东西。
我有一个事件侦听器,其中包含多个事件,如下所示:
$account.on({
tap: function() {
accountOpen = true;
ui.openAccount(this);
},
swiperight: etc. etc.
}
我所有的 ui 函数都在一个对象文字中。例:
var ui = PROJECT.ui = {
openAccount: function(account) {
var $account = $(account),
$trans = $('.transactions'),
$closeBtn= $account.find('.close-btn');
$account.removeClass('pay-open').removeClass('move-open');
$trans.appendTo($a)
.slideDown(400,function(){
$closeBtn.fadeIn(100);
});
}
}
将事件目标/这个从事件处理程序发送到ui.openAccount()函数而不必重复捕获变量的正确方法是什么?(即我如何停止重复自己?我是否使用构造函数?带有闭包的帐户对象是否会派上用场?
我在想这样的事情:
var account = (function(){
var acct = {
this.container = $(this),
this.closeBtn = $(this).find('.close-btn')
}
return acct;
}());
我可以将var帐户发送到ui.openAccount(),但我知道我绝对做得不对。
尝试将事件传递给要调用的函数:
$account.on({
tap: function(e) {
var my_cool_new_object = {};
console.log("your event is here")
console.log(e)
accountOpen = true;
// populate your object
my_cool_new_object.target = e.target;
my_cool_new_object.foo = bar;
...
// pass to method
ui.openAccount(my_cool_new_object);
},
swiperight: etc. etc.
}