Javascript 我应该如何组织jquery代码以使其干燥?
我正在努力研究如何组织我的jquery代码 我有以下职能:Javascript 我应该如何组织jquery代码以使其干燥?,javascript,jquery,Javascript,Jquery,我正在努力研究如何组织我的jquery代码 我有以下职能: function Function1() { $('a').not('a.dialog').click(function(event){ // Do something. }); }; function Function2() { $('a.dialog').click(function () { // Do something. }); }; Function1在每个页面上调用,function2仅
function Function1() {
$('a').not('a.dialog').click(function(event){
// Do something.
});
};
function Function2() {
$('a.dialog').click(function () {
// Do something.
});
};
Function1在每个页面上调用,function2仅在单个页面上调用
消除这两个功能之间重复的最佳方法是什么?特别是对“a.dialog”的引用
我应该使用全局变量吗?或者上面的代码是我所希望的最好的代码
------------------更新------------------
这两项功能的具体内容如下:
函数1执行以下操作:
函数2打开一个对话框。一种方法可以是这样做:
function Function1() {
$('a').click(function(event){
if($(this).is('.dialog')) //or .hasClass('dialog')
//...
else //...
});
};
$('a').click(function(){
alert('work');
})
$('.dialog').unbind().click(function(){
alert('really work')
})
减少如果
Fiddle:我认为这实际上取决于函数的功能……一个简单的内部if检查可以对这两个函数都起作用。您可以将函数移动到单独的js。为什么不使用一个包含这两个函数的脚本文件,并将其包含在两个页面中?顺便说一句,考虑到http请求和连接的速度很慢,对同一个小函数进行两次解析可能更有效。
$('a')。单击(function(){if($(this).hasClass('dialog')){DO SOMETHING..}…
@epascarello-请查看我的更新。这将起作用,但我更希望保持两个功能之间的分离。此外,此解决方案将为站点上的大多数页面引入“如果”开销。在“如果”部分(用于对话框)如果你想要分离,那么你可以调用设置在特定页面内的外部函数,而不是你认为首先为什么需要将它们组合起来!@epascarello-以避免重复,因为这更可能会引入错误。同时也避免重复搜索的开销。不要担心如果开销,你可以执行几十或几百次在达到可感知的100毫秒延迟阈值之前,执行了数百万次…“从jQuery 1.7开始,.on()和.off()方法优先用于附加和删除元素上的事件处理程序。”-仅供参考。我想它们最终会被弃用。