2015-05-15 3 views
5

У меня есть следующая проблема. Вот код:Автовоспроизведение/пауза при наведении курсора мыши JQuery

<div class="article-content-wrapper> 
    <%= video_tag 'Garden.mp4', :class => "video", :controls => true %> 
</div> 

На наведении курсора мыши Я хочу видео пойти на автовоспроизведение/резюме, и на отведении указателя мыши, видео на паузу.

Как я могу это сделать с помощью JQuery? Я много искал на веб-сайте JQuery, но я ничего не нашел для меня. Код, который я пробовал, не работает.

cSlider: stop autoplay on mouseover или autoplay video in slider или JQuery autoplay video on click show

Спасибо за помощь.

+1

Можете ли вы опубликовать фактический HTML генерируется –

ответ

7

простой обходной путь:

$(function(){ 
    $('.video').on('mouseenter', function(){ 
     if(this.paused) this.play(); 
    }).on('mouseleave', function(){ 
     if(!this.paused) this.pause(); 
    }); 
}); 

Check jsFiddle

+0

Спасибо, друг! это работает ! –

4
$(document).ready(function() { 
    $(document).on({ 
     mouseenter: function() { this.play(); }, 
     mouseleave: function() { this.pause(); } 
    }, '.video'); 
}); 
+0

Это не обязательно использовать делегированные события, если ваши элементы не загружать динамически – kosmos

+0

, но это больше общий нет? –

+0

Совсем нет. Каждый путь для каждого случая. Например, с делегированными событиями вы не можете использовать 'event.stopPropagation()', потому что событие уже делегировано до самого документа. Это может повлиять на производительность, если ваша DOM глубокая. Поэтому вы должны использовать их, когда это необходимо. – kosmos

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