условие на событие клика
Запутался в условии, подскажите как отследить кнопку на которую нажал пользователь и в зависимости от этого выполнить определенные действия, вот код
$(document).ready(function(){ $('#secondMenu_2, #secondMenu_3, #secondMenu_4').hide(); var flag = new Boolean(true); $('#variant_2 a, #variant_3 a, #variant_4 a').click(function() { if (flag) { flag = false; func1.call(this); } else { flag = true; func2.call(this); } return false; }); function func1(){ if($('#variant_2 a').id == $(this).id){ $('#secondMenu_2').slideDown(1000); } else if($('#variant_3 a').id == $(this).id){ $('#secondMenu_3').slideDown(1000); } else if($('#variant_4 a').id == $(this).id){ $('#secondMenu_4').slideDown(1000); } }; function func2(){ $('#secondMenu_2, #secondMenu_3, #secondMenu_4').slideUp(1000); }; Пробовал через if($('#variant_2 a').target == $(this).target){ $('#secondMenu_2').slideDown(1000); }не получается, грубо говоря мне надо сделать условие: Если пользователь нажал на кнопку 1, то выполнить одно условие, если на 2 - другое и так далее, буду признателен за ваши мысли |
Вешай на кнопку обработчик событий ,
<input name="btn_1" id='btn_1' type="button onclick='btn(1)'" /> <input name="btn_1" id='btn_1' type="button onclick='btn(2)'" /> <input name="btn_1" id='btn_1' type="button onclick='btn(3)'" /> <input name="btn_1" id='btn_1' type="button onclick='btn(4)'" /> function btn(x) { if (x==1) {твое условие}; if (x==2){твое условие}; if (x==3){твое условие}; if (x==4){твое условие}; } |
здесь фишка в том, что это элементы меню, Я делаю раскрывающее меню, используя тэги nav и sector, поэтому надо как то без инпутов обойтись(( может есть какой то метод, который определяет
if($('нажимаемая кнопка') == какому то методу конструкции $(this)) {...} |
<div id="variant_2"> <a href="#">variant_2</a> </div> <div id="variant_3"> <a href="#">variant_3</a> </div> <div id="variant_4"> <a href="#">variant_4</a> </div> <script> window.onload = hookLinks; function hookLinks() { var links = document.querySelectorAll('div[id^=variant_] > a'); for (var i = 0; i < links.length; i++) { links[i].onclick = window[links[i].parentNode.id]; } } function variant_2() { alert("variant_2"); } function variant_3() { alert("variant_3"); } function variant_4() { alert("variant_4"); } </script> внимательно посмотрите на свою задачу. Уверен есть гораздо лучший подход ее решения |
Спасибо за помощь! В итоге решил задачу простеньким способом
$('#block_A li div a').click(function(){ if($(this).next().is(':visible') == false) { $('#block_A ul').slideUp(300); } $(this).next().slideToggle(300); }); |
Часовой пояс GMT +3, время: 15:07. |