2012-01-31 51 views
-3

我在我的網站中有很多下拉列表,我想用jQuery創建一個可重用的函數,這樣我就可以通過一個函數保存很多代碼。任何一個可以幫助我在這方面... 舉一個例子Jquery中的函數

<div id="clickMe"> 
    <div id="showMe"> 
     <div>I am dropdown item</div> 
    </div> 
</div> 

現在我使用它像這樣...

$(document).ready(function() { 

    $("#clickMe").click(function(e) {   
     e.preventDefault(); 
     $("#showMe").toggle(); 
     $("#clickMe").toggleClass("menu-open"); 
    }); 

    $("#showMe").mouseup(function() { 
     return false 
    }); 
    $(document).mouseup(function(e) { 
     if($(e.target).parent("#clickMe").length==0) { 
     $("#clickMe").removeClass("menu-open"); 
     $("#showMe").hide(); 
    } 
    }); 
}); 

,但現在我想使它更可重複使用的... 在此先感謝...

+4

這是一個令人驚訝的模糊問題。如果你想創建一個功能,那麼創建一個功能。我很困惑你的確切目標是什麼。 – Corbin 2012-01-31 08:36:30

回答

0

您可以使用HTML的class財產與下拉,以確定所有div S,和jQuery的類選擇添加事件偵聽器,例如:

<script type="text/javascript"> 
    //reusable function 
    function addMyListener(){ 
    $(".showClass > div").click(function(){ 
     if($(".showClass").prop("enabled")){ 
      //do some thing while click drop-down item 
     } 
    }); 
    } 

    $(function(){ 
    //call the function while document is ready 
    addMyListener(); 
    }); 
</script> 
<div id="clickMe"> 
    <!-- add class="showDiv" for all showMe like divs --> 
    <div id="showMe" class="showClass"> 
    <div>I am dropdown item</div> 
    </div> 
</div> 
+0

我想做一個像這樣的功能。function dropdown(selecter,to_show,activeClass){ $ select = $('selecter'); $ show = $('to_show'); $ activeClass = $('activeClass'); //默認 $ select.show(); $ show.hide(); //上單擊事件 $ select.click(函數(){$ show.toggle(); $ select.toggleClass( '$ activeClass'); }); //在打開的div上加上false false $ show.mouseup(function(){ return false; });如果(($(e.target).parent('$ select')。length == 0)){ //最後隱藏div如果點擊外 $(document).mouseup(function(e){ if $ show.hide(); $ select.removeClass('$ activeClass'); } }); }; – 2012-01-31 09:23:04