Jér*_*nge 1 javascript parameters jquery constants function
我还是Javascript的新手.我需要附加一个函数来处理我的一些HTML元素上的事件.
我正在做以下事情:
$('#iinp0').keyup(function(){keyReleased('iinp0');});
$('#iinp1').keyup(function(){keyReleased('iinp1');});
$('#iinp2').keyup(function(){keyReleased('iinp2');});
$('#iinp3').keyup(function(){keyReleased('iinp3');});
$('#iinp4').keyup(function(){keyReleased('iinp4');});
$('#iinp5').keyup(function(){keyReleased('iinp5');});
$('#iinp6').keyup(function(){keyReleased('iinp6');});
$('#iinp7').keyup(function(){keyReleased('iinp7');});
Run Code Online (Sandbox Code Playgroud)
我希望我可以使用以下内容来应用"不要重复自己"(DRY)原则:
for (i=0;i<=7;i++) {
var tmp = 'iinp' + i;
$('#'+tmp).keyup(function(){keyReleased(tmp);});
}
Run Code Online (Sandbox Code Playgroud)
但keyReleased()没有使用正确的值调用.
这个问题有解决方案吗?我的意思是有一种简单的方法来附加具有常量参数的函数吗?
为什么不这么简单:
$('#iinp0, #iinp1, #iinp2, #iinp3, #iinp4, #iinp5, #iinp6, #iinp7').keyup(function()
{
keyReleased(this.id);
});
Run Code Online (Sandbox Code Playgroud)
你甚至可以用属性选择器替换那个长选择器:
$('[id^=iinp]').keyup(function()
{
keyReleased(this.id);
});
Run Code Online (Sandbox Code Playgroud)
这将选择id开头的任何元素iinp.
注意:此选择器比纯ID选择器慢一点 - 但更容易阅读和维护(如果您可以使用标签选择器限定它,它会更快一点).
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |