2015-01-29 7 views
1

Это самое странное:JQuery нажмите() не работает

$(document).ready(function() { 

    $(".selector").first().css("background-color", "red"); // This works 
    $(".selector").first().click();       // This doesn't 

    $(".selector").click(function(e) { 

     alert("plop"); 

    }); 
}); 

Конечно, когда я нажимаю на .selector я вижу предупреждение ... Что это дает?

ответ

1

Вы можете FACEPALM довольно массивно после этого, но вы» re вызов события click перед добавлением обработчика кликов. Ваш код говорит, что это:

Click on the first .selector

If any .selectors get clicked on from now on, do this function

При перемещении click обработчик над .click() вызова, он будет работать нормально.

+0

Aaah. Вы правы, теперь у меня болит голова. Благодарю. – yPhil

1

Подумайте о порядке вы делаете вещи:

//click the first .selector: 
$(".selector").first().click();       
//from now on, when .selector is clicked, fire an alert 
$(".selector").click(function(e) { 
    alert("plop"); 
}); 

Если вы просто сделать:

//from now on, when .selector is clicked, fire an alert 
$(".selector").click(function(e) { 
    alert("plop"); 
}); 
//click the first .selector: 
$(".selector").first().click(); 

Он должен работать

+0

ха-ха, сойдите с головы, @dave! :) Приобретено, потому что я думаю, что этот ответ с примерами кода немного лучше моего. – Maverick

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