2015-10-24 8 views
-2

У меня есть следующие функции:Перерыв на события

li.click(function() { 
    div = 0; 

    $(this).children('label').children('div').on('click', function() { 
     return div = 1; 
    }); 
    console.log(div); 
    if (div === 1) { 
     console.log(123); 
     return; 
    } 

Я хочу, чтобы выйти из функции, когда «ДИВ» нажата, но ДИВ переменная всегда равен 0. Как это изменить?

+0

Предлагает Вам включить свой HTML также. – refactor

+0

Yeh, когда нажимается какой-либо div? – AdamJeffers

+0

Функция '.on()' немедленно возвращается. Закрытие, переданное как аргумент, не вызывается до тех пор, пока не произойдет событие щелчка. – cgTag

ответ

0

Это должно позволить вашему поведению установив variable div на 1, когда div внутри label внутри li внутри ul будет нажаты и вождение особого поведения этого значения, равного 1, или нет. Работа скрипки здесь: http://jsfiddle.net/9pxgdpgz/

Javascript:

var div = 0; 

$("li").on("click", function() { 
    if (div === 1){ 
     alert("div is 1"); 
     div = 0; 
     console.log(123); 

     return; 
    } else { 
     alert("div is not 1"); 
    } 
    // Do more stuff here if not 1? 
}); 

$("li").children("label").children("div").on("click", function() { 
    // Set global variable to 1. 
    div = 1; 
}); 

HTML:

<ul> 
<li> 
    LI IS HERE<br /> 
    <label> 
     LABEL IS HERE<br /> 
     <div> 
      DIV IS HERE 
     </div> 
    </label> 
</li> 
</ul> 
Смежные вопросы