2015-04-05 4 views
0

Я новичок в jQuery,Если утверждения игнорируют переменные внутри событий click click

Я пытаюсь сделать что-то очень простое. Оператор if внутри события click. Когда я нажимаю кнопку, если переменная = 1, что-то происходит, если она равна чему-то другому, происходит что-то еще. Но кажется, что событие click игнорирует операторы if. Он просто запускает все, что находится внутри операторов if.

мой код:

HTML:

<button type="button" class="one">Press</button> 
<button type="button" class="two">section 2</button> 
<button type="button" class="three">section 3</button> 
<div class="textbox"> 
<h1>hi</h1> 
<p>text</p> 
</div> 

Jquery:

var y = '.textbox p' 
var n = 20 

$('.one').click(function() { 
    if (n=1) { 
    $(y).html("hi hi <br> hi <br><br>"); 
    $('.textbox h1').html("titulo"); 
    var a=0 
    } 
}); 

$('.two').click(function() { 
    if (n=1) { 
    $('.textbox p').html("hey <br> hi <br><br>"); 
    $('.textbox h1').html("sup bro"); 
    var a=0 
    } 
    else { 
    $('.textbox p').html("variable is not 1"); 
    $('.textbox h1').html("another"); 
    var a=0 
    } 
}); 

Даже если я установить переменную = 20, событие щелчка проходит все, что внутри, если заявление. Это похоже на игнорирование переменных или операторов if.

Так что я не знаю, что случилось. Что происходит?

+1

'n = 1' присваивает, а не сравнивает. просто cange to 'n == 1' – Grundy

+0

Вы не сравниваете n, вы назначаете n, который возвращает true при назначении на что-либо большее, чем ноль. – bloodyKnuckles

ответ

2

Один знак равенства (=) устанавливает значение переменной. var foo = "bar"; установил бы foo для хранения бар.

Вы хотите использовать два равных знака (==), который является comparison operator. (foo == "bar") проверит, будет ли foo равно бар.

+0

Спасибо, что так так, я смог наконец закончить свой слайдер. Я застрял в этом. Я пригласил бы всех здесь пиво, но мы на тысячи километров, так что это невозможно. Большое вам спасибо, у нас отличный день. – McLovin