2013-04-15 53 views
0

嗨,即時通訊有一些切換功能的問題,其工作只需雙擊不單擊,所以任何人都可以幫助我。Jquery-在點擊功能上切換,在單擊時不起作用。但它適用於雙擊

下面是我的HTML代碼:

<div class="search_result_per_page"> 
    <dl class="selectcsdd perpage"> 
    <dt> 
    <a href="javascript:void(0);" rel="nofollow"> 
    <span id="dropdownArrow" class="close">Items per page</span> 
    </a> 
    </dt> 
    <dd> 
    <ul style="display: none;"> 
    <li> 
    <li> 
    <li> 
    </ul> 
    </dd> 
    </dl> 
    </div> 

我想切換UL當我點擊跨度ID = 「dropdownArrow」。但它只能在雙擊時切換。 爲此編寫的Jquery代碼如下。

$(document).ready(function($) 
     { 
      $(".selectcsdd.perpage dt a").click(function() { 
       $(".selectcsdd.perpage dd ul").toggle(function(){    
      var arrow = $(".selectcsdd.perpage #dropdownArrow").attr('class'); 
       if(arrow=='close'){ 
       $(".selectcsdd.perpage #dropdownArrow").attr('class','open'); 
      } 
      else if(arrow=='open'){ 
       $(".selectcsdd.perpage #dropdownArrow").attr('class','close'); 
      } 
     }); 
    }); 
    $(".selectcsdd.sortby dt a").click(function() { 
     $(".selectcsdd.sortby dd ul").toggle(function(){ 
      var arrow = $(".selectcsdd.sortby #dropdownArrow").attr('class'); 
      if(arrow=='close'){ 
       $(".selectcsdd.sortby #dropdownArrow").attr('class','open'); 
      } 
      else if(arrow=='open'){ 
       $(".selectcsdd.sortby #dropdownArrow").attr('class','close'); 
      } 
     }); 
    }); 

    $(document).bind('click', function(e) { 
     var $clicked = $(e.target); 
     if (! $clicked.parents().hasClass("open")) 
      $(".selectcsdd.perpage dd ul").hide(); 
      $(".selectcsdd.sortby dd ul").hide(); 
    }); 
}); 

任何想法?

+0

從你有限的標記,它似乎你有「dropdownArrow」的多個實例您的網頁上的代碼 - 一個ID只能在一個頁面上出現一次。 –

回答

0

您正在使用.click().bind('click')關於似乎導致問題的相同元素。如果您刪除.bind()它工作正常

+0

謝謝!現在UL可以在第一次點擊時看到。但是,當用戶點擊網站上的任何其他位置時隱藏UL的任何線索? – user2282362

+0

只需將UL標籤的樣式設置爲'style =「display:none;」'在body標籤的click事件內:) – dreamweiver

0

試試這個:

$(document).ready(function($) { 

    $(".selectcsdd.perpage dt a").click(function(e) { 
     $(".selectcsdd.perpage dd ul").toggle(function(){    
      var arrow = $(e.target).attr('class'); 
      if(arrow=='close'){ 
       $(".selectcsdd.perpage #dropdownArrow").attr('class','open'); 
      } 
      else if(arrow=='open'){ 
       $(".selectcsdd.perpage #dropdownArrow").attr('class','close'); 
      } 
      if (! e.class == 'open'){ 
       $(".selectcsdd.perpage dd ul").hide(); 
       $(".selectcsdd.sortby dd ul").hide(); 
      } 
     }); 
    }); 
    $(".selectcsdd.sortby dt a").click(function() { 
     $(".selectcsdd.sortby dd ul").toggle(function(){ 
      var arrow = $(".selectcsdd.sortby #dropdownArrow").attr('class'); 
      if(arrow=='close'){ 
       $(".selectcsdd.sortby #dropdownArrow").attr('class','open'); 
      } 
      else if(arrow=='open'){ 
       $(".selectcsdd.sortby #dropdownArrow").attr('class','close'); 
      } 
     }); 
    }); 
}); 

有綁定到文檔中的單擊事件和鏈路造成此錯誤。該鏈接將捕獲該事件並且不留下任何文檔。既然事件只關心鏈接,爲什麼不在事件發生時處理所有事情呢?

--lol20分鐘late--