2012-11-08 64 views
0

我知道很多人都詢問過有關選擇器的問題,但無論我做什麼看起來都正確,但仍然無法正常工作。我有一個行動清單。只要點擊「文件夾」,操作就會顯示或隱藏。當動作本身被點擊時,我不希望他們再次隱藏......但是他們這樣做。任何人都可以看到我的問題是什麼?我嘗試了很多變化。也許這只是晚了。JQuery列表選擇器行爲異常

相關代碼:

func.js

$(function() { 
    $(".menuitems").hide(); 

    $("#dmenu li").not(".menuitems li").click(function() { 
     $(this).children(".menuitems").slideToggle(); 
    }); 

    $(".menuitems").children("li").click(function() { 
     $.get("aux/" + $(this).text() + ".html", function(data) { 
      $("#content").html(data); 
     }, "text"); 
    }); 
}); 

main.html中

<div id="content"> 
All contents come here!! 
</div> 

<div id="leftnavigation"> 
<h3>Options</h3> 
<ul id="dmenu" style="list-style-type:none; margin-left:-50"> 
    <li>__Registration 
     <ul class="menuitems"> 
      <li>FindExisting</li> 
      <li>CreateNew</li> 
     </ul> 
    </li> 
</ul> 
</div> 

回答

3

你想看看在具有裏面你可以做一個.menuitems所有li元素例如:

$(function() { 
    $("#dmenu li:has(.menuitems)").click(function() { 
     $(this).children(".menuitems").slideToggle(); 
    }); 
    $(".menuitems").hide().find("li").click(function() { 
     $.get("aux/" + $(this).text() + ".html", function(data) { 
      $("#content").html(data); 
     }, "text"); 
     return false; 
    }); 
}); 
+0

工作,非常感謝你!爲什麼我使用的代碼不工作?你知道嗎?另外,如何添加'return false'影響代碼? – Wires77

+0

返回取消點擊事件,所以它不會向下滾動節點,如果刪除返回false語句,它將觸發slideToggle。 – voigtan