Есть изображение, по клику на которое должно появляться окно alert. Изображение находится внутри слайда bx slider. Но по клику ничего не происходит.
<div class="blog_slide_2">
<img id="play" src="img/play.png">
<video id="movie" src="video/kitten.mp4" controls></video>
</div>
<script>
$('#play').click(function(){
alert ('алё');
});
</script>
Вообще, как полный нуб, пробовала скрипт оборачивать в такие конструкции:
$(document).on('ready', function(){});
$(document).on('load', function(){});
$(window).on('ready', function(){});
$(window).on('load', function(){});
Пробовала делать делегирование события (знаю, бред, ведь контент статический), но так хотя бы это событие появлялось в списке Event Listeners. Но, по-прежнему, не работало. Помогите, пoжалуйста, заставить его работать.
Атрибут id
должен быть уникальным. Если Вы используете его несколько раз, событие клика сработает только на первом. Лучше добавьте play
, например, в класс или атрибут data
Разметка:
<div>
<div class="box">
<img class="play" src="..." />
</div>
<div class="box">
<img class="play" src="..." />
</div>
</div>
Скрипт:
<script>
$(function() {
$(".play").click(function() {
alert(1);
});
});
</script>
В случае, если будете использовать атрибут data
:
Разметка будет такой:
<img data-play src="..." />
А скрипт таким:
$("[data-play]").click(function() {
});
Решением оказалось заменить событие click на mousedown, при этом функцию этого клика вложила в функцию слайдера:
$('.slider').bxSlider({
$('#play').on ( 'mousedown', function(){
alert ('Клик по play');
}
});
Потом был интересный момент с pager. Он у меня был стандартный, не кастомный. Там я сделала то же самое, но клик по кнопкам пейджера не работал в мобильной версии. Получалось переключить слайд, но остановить видео, например, не выходило. Заработало после того, как вместо mousedown по пейджеру поставила touchend.
$('.new').on ( 'touchend', function(){
//alert ('Клик по пейджеру, видео на паузе');
});
Класс $('.new') добавила через опцию Bx-слайдера onSliderLoad:
onSliderLoad: function(currentIndex){
$("body > div > div.bx-controls.bx-has-pager > div > div").addClass("new");
}
Спасибо всем, особенно ВадимЛешкевич, за помощь. Надеюсь, мой ответ кому-то ещё пригодиться. Всё заработало!!!
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
подскажите пожалуйста каким образом можно сделать такой круг? Требуется сделать такой графикПроблема в том что надо удобно менять значения?...
Как сделать так, чтоб при наведении на некоторый текст, он изменялся, а при уходе курсора с него он становился таким, каким был до наведения...