在两种功能之间进行选择的建议
Suggestions for choosing between two functions
下面的两段jQuery代码(1)(2),有人能说出哪一个更好吗?为什么?我应该把myfunction
放在顶部还是底部?我在许多相关主题的答案中都看到了这两种情况。
(1)
var myfunction = function () {
// do stuff
};
$(document).ready(myfunction);
$(window).resize(myfunction);
(2)
$(document).ready(myfunction);
$(window).on('resize',myfunction);
function myfunction() {
// do stuff
}
如果这个问题问得不恰当,请原谅我。
为了不污染全局名称空间,我会将所有jquery任务打包到一个自调用函数中,并在那里完成这些工作:
$(function () {
function myFunction() {
console.log("doing stuff");
}
$(window).on("resize", myFunction);
myFunction();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
另外,别忘了JavaScript是camelBase首选的,所以myFunction而不是myFunction:)
由于jQuery 1.7,建议使用.on()
语句。对于jQuery团队来说,像.click() .resize() .dblclick()
这样的所有函数都很难维护。(它们都是碎片化的,现在全在一个功能中)
.on()
是最新的版本,所以这也是开发人员要维护的版本。不确定开发人员是否会在进一步的更新中维护其他功能(参见我的示例)。
当然,他们会在未来几年,但不确定会持续多久。
这真的是一个品味问题。我更喜欢像resize
这样的快捷方式绑定,而不仅仅是on
,因为它可以节省一些按键,并使代码更漂亮。
关于在哪里声明函数,在这种特殊情况下(就执行而言)没有区别,因为有一种叫做提升的东西。
就可读性而言,我建议您阅读这篇文章,这篇文章很好地说明了使用此功能使代码更加清晰。
将函数声明为var意味着作用域。在以下示例中,函数myFunction进入ram,然后在父函数被销毁时被销毁。
myParentFunction = function(){
var myfunction = function () {
// do stuff
};
}
如果它位于Window上,则不需要任何范围。在代码运行之前,函数会在加载时进行解析,它们出现在哪里并不重要。
对于其他…jquery"on"通常在您希望将事件作为参数时使用。否则,直接指定也可以。
- 从动态创建的html选择中选择所选选项
- 可以'选择单选输入时,不要提交带有JavaScript功能的表单
- 如果选择单选按钮,则显示字段
- 如何取消选择所选选项并将JqueryMobile中选择的值刷新为1st
- 选择单选按钮更新2个输入字段
- 如果选择单选按钮,则显示表单
- 如何创建只允许用户在选中前一个复选框的情况下选择复选框的复选框验证
- 选择单选按钮时显示更新按钮
- 选择单选按钮时显示或隐藏窗体
- ui.grid 行无法选择行
- 如何使用Greasemonkey自动选择单选按钮
- 如何通过单击选项而不是实际按钮本身来选择单选按钮
- JavaScript - 如果选中任何复选框,请选择单选按钮
- 如何选择复选框而不选择整行(参见正文)
- 选中“ExtjS”复选框时,才选择行
- 使用vb-在网格视图中选择复选框后获取行值,以避免在每次选择时刷新页面
- jQuery选择复选框时,文本存在,隐藏未选中的行从打印
- 在表格行中选择单选按钮时,行的颜色应该更改
- 在数据表中单击选择行,然后将所选数据导出为Excel
- 使用javascript从矩阵中选择行或列的复选框