我对jQuery很新,但我想知道按钮做什么时的最佳做法。
我应该使用.click()
HTML
<button id="submit" class="btn btn-default">Submit</button>
JS
$('#submit').click(function(){
//DO SOMETHING
});
或致电功能
HTML
<button class="btn btn-default" onclick="Submit();">Submit</button>
JS
function Submit() {
//DO SOMETHING
}
我的问题是,这两种方法的行为方式是否相同?如果没有,那么一方面有什么优势呢。
*我试过并且似乎以同样的方式工作但是我想确保jQuery的新手。
答案 0 :(得分:2)
它们在内部的行为方式不同。
使用onClick将click事件直接绑定到一个性能稍好的函数。
JQuerys .click()添加了一个事件监听器,它具有几个优点(除了更具可读性)。
有关详细信息,请参阅此答案:jQuery.click() vs onClick
答案 1 :(得分:1)
为了可维护性和可读性,您应该将HTML和JavaScript分开。 onclick="Submit();"
的问题是JavaScript代码段Submit()
嵌入在HTML属性中。从概念上讲,这类似于另一种应该避免的技术,即内联样式,其中混合了HTML和CSS。
实施语言分离可以使将来更容易进行更改。举个例子,我们假设您从这开始:
$('#submit').click(function(){
//DO SOMETHING
});
它将功能附加到表单按钮提交。
但是,在路上,您意识到按下输入/返回文本输入也将提交HTML表单。要解决这个问题,您需要做的就是更改一行JavaScript:
$('#myform').on("submit", function(){
//DO SOMETHING
});
答案 2 :(得分:0)
以下是我的两个首选方案。
在jQuery中使用click()
应该与onClick
做同样的事情(即使它们在技术上有所不同),所以我认为没有理由选择onClick
而不是click()
。另一件事是,如果您构建Chrome扩展程序onClick
是不允许的。
示例:
$(element).click(function(){
...
});
您的其他选项是使用on()
功能。与监视特定元素click()
的{{1}}不同,它会监视事件的所有内容(在您定义的上下文中)。如果您具有相同类的动态元素,这将非常有用。
on()
这两个功能都很有用,具体取决于具体情况。回答您的原始问题:不,我认为没有理由使用$(element).on('click', function(){
...
});
而不是onclick
。
希望这不是太偏离主题,但是当我开始时,我知道这些信息。
答案 3 :(得分:0)
这两种方法基本上做同样的事情。但是,有一个明显的区别。 onclick
属性只能用于绑定一个事件,jQuery click
事件可以在同一个元素上多次绑定。
除此之外,通常更容易维护标记与JavaScript代码分离的代码。通过使用onclick
属性,您可以将一些JavaScript代码与标记混合在一起。
此外,使用jQuery绑定事件意味着您可以一次绑定多个元素上的事件,而不是在每个元素上都有一个属性。
答案 4 :(得分:-1)
.click(function(){...});
要求浏览器在执行该功能之前加载jquery,但后者即function Submit(){...}
更直接,与jquery方法相比,初始网站加载时间更少。但在前端用户眼中,这几乎完全相同。