jQuery 1.4:15个你应该知道的新特性
2010-01-25 00:00:00 来源:WEB开发网jQuery('input').live('focusin', function(){
//具体操作
});
6. 控制函数的上下文
jQuery 1.4提供了一个新的叫"proxy”的函数,它在jQuery命名空间下。该函数需要两个参数,不管是代码域还是方法名,或者是函数和其所处的代码域。 t"this”关键字在JavaScrip中是相当难掌握的。有时候你可能期待它指的是你之前创建的某个对象,而不是一个你可能没想到的元素。
举例说明,假设我们有一个"app”对象,它有两个属性,一个是"clickHandler”方法, 另外一个则是一个config对象。
var app = {
config: {
clickMessage: '你好!'
},
clickHandler: function() {
alert(this.config.clickMessage);
}
};
当我们调用如"app.clickHandler()"时,"clickHandler"会将"app”作为其上下文。这意味着在这里"this"关键字将允许其访问"app"。这在我们简单调用下面函数时没什么问题:
app.clickHandler(); // "你好!" 消息触发
让我们试试将其作为事件绑定会有什么情况:
jQuery('a').bind('click', app.clickHandler);
当我们点击一个链接的时候什么都不会发生,函数不会工作。这是因为jQuery(其他任何正常的事件模型同样如此)默认会把目标元素a设置成为事件的上下文。即"this”现在其实是指刚刚被点击过的元素a。但我们实际上并不想这样子的。我们期待"this”应该被设置为"app”.在jQuery 1.4中实现这个再简单不过了:
jQuery('a').bind(
'click',
jQuery.proxy(app, 'clickHandler')
);
更多精彩
赞助商链接