我对jQuery相当陌生,但我想知道,当按钮做一些事情时,最佳实践是什么。
我应该使用.click()吗?
<button id="submit" class="btn btn-default">Submit</button>
JS
$('#submit').click(function(){
//DO SOMETHING
});
或者调用一个函数
<button class="btn btn-default" onclick="Submit();">Submit</button>
JS
function Submit() {
//DO SOMETHING
}
我的问题是,这两种方法的行为方式是相同的吗?如果不是,的优点是什么?
*我试过了,似乎也是这样做的,但作为jQuery新手,我想确定一下。
发布于 2015-04-13 14:14:54
他们的行为(内部)不一样。
使用onClick可以直接将click事件绑定到性能更好的函数上。
JQuerys .click()添加了一个事件侦听器,它有几个优点(除了更具可读性)。
有关更深入的信息,请参见此答案:jQuery.click() vs onClick
发布于 2015-04-13 14:13:49
这是我最喜欢的两种选择。
在jQuery中使用jQuery应该做与onClick
相同的事情(尽管它们在技术上的工作方式不同),所以我认为没有理由选择onClick
而不是click()
。另一件事是,如果你曾经构建一个Chrome扩展onClick
是不允许的。
示例:
$(element).click(function(){
...
});
另一个选项是使用on()
函数。与监视特定元素的click()
不同,on()
将监视事件的一切(在您定义的上下文中)。如果您的动态元素具有相同的类,这是非常有用的。
$(element).on('click', function(){
...
});
这两种功能都很有用,这取决于具体情况。要回答您最初的问题:不,我认为没有理由在click()
上使用click()
。
希望这不是太离题,但我知道的信息,当我开始。
发布于 2015-04-13 14:18:42
为了保持可维护性和可读性,您应该将HTML和JavaScript分开。onclick="Submit();"
的问题是JavaScript片段Submit()
被嵌入到HTML中。在概念上,这类似于另一种应该避免的技术,内联样式,其中HTML和CSS是混合的。
实行语言分离可以使将来的更改变得更容易。举个例子,假设您从以下几个方面开始:
$('#submit').click(function(){
//DO SOMETHING
});
它将功能附加到表单按钮提交。
但是,沿着这条路走下去,您会意识到,在文本输入上按回车/返回也会提交一个HTML表单。要处理这个问题,您所需要做的就是更改一行JavaScript:
$('#myform').on("submit", function(){
//DO SOMETHING
});
https://stackoverflow.com/questions/29615891
复制相似问题