2015-03-08 3 views
0

У меня есть элементы списка в неупорядоченном списке, которые вызывают функции через события jquery click. Проблема заключается в том, что li вызывает свою функцию, а затем вызывает родительскую функцию ul. Я просто хочу, чтобы функция вызывала, что я ссылаюсь на идентификатор. Это проблема родительского ребенка?Функции Jquery в неупорядоченном списке

<ul id="mainlist"> 
    <li id="item1">list1</li> 
    <li id="item2">list2</li> 
</ul> 

Jquery

$("#mainlist").click(function { 
    someFunction(); 
    }); 
$("#item1").click(function { 
    someOtherFunction(); 
}); 

ответ

4

Вы просто должны остановить событие от распространяющихся своих предков:

$("#item1").click(function (event) { 
    event.stopPropagation(); 
    someOtherFunction(); 
}); 

Или, вы можете проверить щелкнул элемент (event.target), чтобы увидеть, если это <ul> или <li>, проверив его id:

$("#mainlist").click(function (event) { 
    switch (event.target.id) { 
     case 'mainlist': 
      someFunction(); 
      break; 
     case 'item1': 
      someOtherFunction(); 
      break; 
     default: 
      break; 
    } 
}); 

Ссылки:

+0

Это сработало! Спасибо огромное! – Jotter

+0

Я проверил документацию и попробовал опцию return false, и это тоже работает. – Jotter

+0

Я рад помочь! :) –

Смежные вопросы