js这样写会有逻辑问题吗
这样写,感觉会重复调用不执行的代码
search();
function search() {
var val = $("#searchBox").val();
$("#searchBtn").click(function(){
//dosomething
});
$("#searchBox").bind('focus',function() {
//dosomething
})
}
还是说不应该封装成函数,直接如下这样写,但是这样的变量是全局变量的,怕有所影响
var val = $("#searchBox").val();
$("#searchBtn").click(function(){
//dosomething
});
$("#searchBox").bind('focus',function() {
//dosomething
})
请问哪种写法的逻辑更好点。
------解决方案--------------------封装成函数可以重复用 不封装即时执行 看你的目的了
------解决方案--------------------不过你写的这个函数执行一次就多增加一次click和focus,逻辑有问题吧
------解决方案--------------------要有 init 初始化的概念
//search(); 在合适的时候 执行他
$(function(){
var val=null;
window.search = function() {
val = $("#searchBox").val();
}
function searchBtnclick(){
//dosomething
}
function searchBoxfocus(){
//dosomething
}
$("#searchBtn").click(searchBtnclick);
$("#searchBox").bind('focus',searchBoxfocus)
});
我感觉 你只是想这样
------解决方案--------------------把不同的功能块封装到
(function(){
})();
或者
$(function(){
});
封装起来,然后需要抛出的全局方法可以用命名空间。
(function(){
App.commom.init = function(){
...
}
})();
个人在项目中的一点儿实践