условие на событие клика
Запутался в условии, подскажите как отследить кнопку на которую нажал пользователь и в зависимости от этого выполнить определенные действия, вот код
$(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, время: 19:17. |