2011-03-29 98 views
1

我写了一个jQuery脚本:jQuery代码帮助

$(document).ready(function(){ 
$("#category").click(function(){ 
    $("#category_menu").slideToggle(1000); 
    }); 
    $("body").click(function(){ 
    $("#category_menu").hide(); 
    }); 
}); 

我的问题是,有没有什么办法,以减少大小看起来更“专业”?

+0

根据我的经验,人们似乎认为更大的代码更专业! – 2011-03-29 20:18:31

+0

专业对我来说是高效和有据可查的。我会采取有效的大部分日子记录良好... – 2011-03-29 20:19:50

回答

1

我可以看到,以减少这是应该做的唯一方法:

$(function(){ 
    $("#category").click(function(){ 
     $("#category_menu").slideToggle(1000); 
    }); 
    $("body").click(function(){ 
     $("#category_menu").hide(); 
    }); 
}); 
1

任何点击,这不是#category将隐藏#category_menu。你也不需要文档准备功能,如果你之前</body>

$("#category, html").click(function(e) { 
    e.stopPropagation(); 
    this.id == 'category' ? $("#category_menu").slideToggle(1000) : $("#category_menu").hide(); 
}); 

检查工作例如把你的jQuery在http://jsfiddle.net/QDfnh/1/

+0

不知道这会工作,会吗 - 因为如果(例如)'身体'被点击 - 这不会触发?也许我错过了一些东西。不应该像'$(“*”)。click(function(){...});' – Dutchie432 2011-03-29 20:22:32

+0

'this.id'怎么会是'#category'以外的任何东西? – 2011-03-29 20:23:36

+0

检查工作示例http://jsfiddle.net/QDfnh/ – Hussein 2011-03-29 20:31:05

1

首先,你应该使用document.ready快捷键和别名jQuery$允许跨库支持,并且您可以存储#category_menu查找以加快功能。但是你的代码真的很好。

jQuery(function($){ 
    var $cm = $('#category_menu'); 
    $('#category').click(function(){ 
    $cm.slideToggle(1000); 
    }); 
    $('body').click(function(){ 
    $cm.hide(); 
    }); 
});