2013-07-10 76 views
0

今天我使用的是此代码。引用从其事件处理程序引起事件的元素

$("#textBox").on("keyup", function() { 
    //if (this.val().length > 4); 
    if ($("#textBox").val().length > 4) 
    console.log("TextBox written to."); 
}); 

但是,我,我心里有点,我使用硬编码的参考文本框的ID。我宁愿把它称为“这个事件处理程序被调用的人”。当然,这没有工作(我的猜测是,它指的是函数本身或类似的东西。

  1. 如何我指的是“任何人......”?
  2. 什么是参照呢?

回答

1

使用 '这个' 作为选择:

$("#textBox").on("keyup", function() { 
    if ($(this).val().length > 4) 
    console.log("TextBox written to."); 
}); 
2

没有,$(this)应该工作。jQuery的保证this将是一个参考对象采取行动。

豪在你的情况下,版本号为this的是DOMNode。你需要把它包装在一个jQuery对象中,以便能够访问jQuery特定功能val。您可以执行$(this).val()this.value

1

这将肯定工作:

if (this.value.length > 4) 

this在这里是指其处理程序连接上的DOM元素。匿名回调函数为此创建了特定的上下文。

+0

没有包装在jQuery选择器语法? –

+0

@KonradViltersten没有必要使这个语法更好一点。值是任何输入DOM节点的属性。在textarea的情况下可能会有所不同,例如 –

+0

很酷。我同意这种方式有点干净。我很习惯依靠jQuery,我忘了看到树木。你的sytax或jQuery的优点是否有缺点? –

相关问题