Я нашел это http://jsfiddle.net/Stocki/jGbhh/
и изменилось на это:
$(document).on("click", ".slides", function () {
$(".slide").removeClass("inside");
$("#" + this.id + "_slide").addClass("inside");
});
$(document).on("click", ".close", function () {
$(".slide").removeClass("inside");
});
Он работает отлично, но это не кажется правильным. Я чувствую, что это должно быть больше на клике .slides
или .close
затем removeClass
else на click addClass
.
Любая помощь будет оценена по достоинству. Это моя первая попытка, и мне очень хотелось бы понять, почему и как это работает, и как это должно быть написано, поэтому я дважды не использую $(document)
.
Попробуйте использовать множественный селектор и разделите поток внутри обработчика события с помощью класса, который имеет текущий элемент,
$(document).on("click", ".slides,.close", function(){
$(".slide").removeClass("inside");
if($(this).hasClass('slides')){
$("#"+this.id+"_slide").addClass("inside");
}
});
is()
также будет работать, но hasClass()
быстрее ( jsperf.com/is-vs-hasclass )