2015-01-21 2 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

$ (это) получает кликали элемент, что вы хотите? –

ответ

1

Используйте контекст элемента с щелчком this, чтобы создать селектор jquery вместе с .text(), чтобы получить текст в нем.

Вам также необходимо добавить другой селектор родительских уль (как #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. Как мы используем switch в C++ или C#, что является лучшим способом сравнения и выполнения вещей? – Naruto

+0

Что вы хотите использовать в состоянии переключения? –

+0

если у меня есть 3 меню, добавьте, удалите и отредактируйте. все ударят по той же функции. здесь мне нужно сравнить i.e $ (this) .text() == Добавить, $ (this) .text() == delete. я просто попросил лучший способ компаре? – Naruto

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? –

+0

@BhojendraNepal Если вы нажмете на одно из них, появится сообщение с текстом li – Akshay

+0

Вот что в настоящее время имеет OP. –

2

Вы для достижения этого используйте идентификаторы списков [#fileMenu, #editMenu]. Ниже скрипта поможет вам разобраться.

Fiddle: http://jsfiddle.net/8bv9h3um/

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

Спасибо, что лучший способ сравнить в jquery, то есть как мы используем switch в C++ или C#, что является лучшим способом сравнивать и выполнять вещи? – Naruto