2011-03-29 211 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(); 
    }); 
});