下面的两个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
}
如果问题没有以正确的方式提出,请原谅我。
答案 0 :(得分:1)
自jQuery 1.7以来,建议使用.on()
语句。像.click() .resize() .dblclick()
这样的所有函数都很难为jQuery团队维护。 (它们都是碎片化的,现在它都是1个功能)
.on()
是最新版本,因此这也是开发人员将要维护的版本。它不确定开发人员是否会在进一步更新中维护其他功能(参见我的示例)。
当然,他们会在即将到来的时候,但不确定多久。
答案 1 :(得分:1)
这真的是一种品味问题。我更喜欢resize
之类的快捷方式绑定,而不仅仅是on
,因为它可以节省一些击键次数并使代码更漂亮。
关于在哪里声明函数它在这个特定情况下(在执行方面)没有区别,因为有hoisting的东西。
就可读性而言,我建议您阅读this post,这有助于使用此功能使您的代码更加清晰。
答案 2 :(得分:1)
我会将我所有的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是camelCase preffered,所以myFunction而不是myfunction:)
答案 3 :(得分:0)
声明一个函数var意味着范围。在下面的示例中,函数myFunction进入ram,然后在父元素被销毁时被销毁。
myParentFunction = function(){
var myfunction = function () {
// do stuff
};
}
如果它坐在Window上,则不需要范围。在运行代码之前,函数会在加载时进行解析,并且它们出现的位置并不重要。
其余的...... jquery&#34; on&#34;通常在您想要将事件作为参数时使用。否则直接分配就可以了。