$('form').each(function(){
var form = this;
$('a', this).click(function(){ form.submit(); });
});
有没有办法在不使用中间变量的情况下,在click函数内获取父(this
)元素?我想也许有一些关键字我还不知道可以做到这一点。
在$.ajax函数中,有一个context
参数,可以让你像这样做。
$('form').each(function(){
var form = this;
$('a', this).click(function(){ form.submit(); });
});
有没有办法在不使用中间变量的情况下,在click函数内获取父(this
)元素?我想也许有一些关键字我还不知道可以做到这一点。
在$.ajax函数中,有一个context
参数,可以让你像这样做。
var that = this;
$('a', this).click(function(){ that.submit(); });
form
)要好得多。 - lonesomeday$.proxy
的唯一问题是,您失去了在事件处理程序中引用通常的this
引用的能力。 - Joshtarget
。无论如何,在这种情况下我更喜欢使用closest
。 - Matt$('form').each(function() {
$('a', this).click((function(x) { return function() { x.submit(); })(this));
});
如果您有一个curry
函数(类似于Prototype中的函数,不确定jQuery是否内置了该函数),您可以简化中间行:
$('a', this).click(curry(function(x) { x.submit(); }, this));
$('form').each(function(){
$('a', $(this)).click(function(){ $(this).parent('form').submit(); });
});
$('a', this).click(function(){ $(this).closest('form').submit(); });
这段代码?或者...你想要一个更简洁/具体的答案吗? - David Thomas