2015-01-21 111 views
0

我有jQuery的菜單一樣如何獲得點擊菜單細節

<ul id="fileMenu"> 
    <li>Refresh</li> 
    <li>-</li> 
    <li>Exit</li> 
</ul> 
<ul id="editMenu"> 
    <li>Add</li> 
    <li>Edit</li> 
    <li>Delete</li> 
</ul> 

我得到的方式來獲得點擊事件的子菜單項像

$('#fileMenu').on('click', 'li', function() { 
      alert("Hello"); // Or make($(this)); if you still want that extra function 
     }); 

但是,如何找出特定菜單選項,即用戶點擊打開,退出,編輯,刪除等...

+0

$(本)被點擊元素,你想要什麼? – 2015-01-21 04:53:00

回答

1

使用單擊元素上下文this創建jQuery選擇器以及.text()以獲取其中的文本。

您還需要添加其他家長UL選擇(如#editMenu)來定位自己的元素以及 :

$('#fileMenu,#editMenu').on('click', 'li', function() { 
     var currenttext=$(this).text(); 
     alert(currenttext); 
     if(currenttext=="Add"){ 
      //perform Add 
     }else if(currenttext=="Delete"){ 
      //perform delete 
     }else{ 
      //perform edit 
     }  
    }); 
+0

謝謝,求助。在jQuery中比較的最佳方式是什麼,即我們如何在C++或c#中使用switch,什麼是比較和執行事物的最佳方式? – Naruto 2015-01-21 04:56:20

+0

你想在開關狀態下使用什麼? – 2015-01-21 04:56:52

+0

如果我有3個菜單,如添加,刪除和編輯。都會發揮相同的功能。在這裏,我必須比較,即$(this).text()== Add,$(this).text()== delete。我只是問最好的方式comapre? – Naruto 2015-01-21 04:58:53

2

試試這個Fiddle

$('#fileMenu').on('click', 'li', function() { 
 
      var text=$(this).text() 
 
    alert("Hello you clicked" + " " + text); // Or make($(this)); if you still want that extra function 
 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<ul id="fileMenu"> 
 
    <li>Refresh</li> 
 
    <li>-</li> 
 
    <li>Exit</li> 
 
</ul> 
 
<ul id="editMenu"> 
 
    <li>Add</li> 
 
    <li>Edit</li> 
 
    <li>Delete</li> 
 
</ul>

+0

你和OP代碼有什麼區別? – 2015-01-21 04:55:37

+0

@BhojendraNepal如果你點擊其中一個警報將出現與李的文字 – Akshay 2015-01-21 04:56:32

+0

這是目前OP有。 – 2015-01-21 04:58:05

2

你使用列表ID [#fileMenu,#editMenu]來實現這一點。小提琴會幫助你把它整理出來。

小提琴:http://jsfiddle.net/8bv9h3um/

$('#fileMenu, #editMenu').on('click', 'li', function() { 
      alert($(this).text()); 
}); 
+0

謝謝,什麼是最好的方式來比較jquery,即我們如何使用開關在c + +或c#中,什麼是最好的方式來比較和執行的事情? – Naruto 2015-01-21 04:55:54