2015-05-15 62 views
5

Tôi gặp sự cố sau. Đây là mã:Tự động phát/Tạm dừng khi di chuột qua JQuery

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

Khi di chuột qua, tôi muốn video tự động phát/tiếp tục và tạm dừng video.

Làm cách nào tôi có thể thực hiện điều đó với JQuery? Tôi đã tìm kiếm rất nhiều trên trang web của JQuery nhưng tôi không tìm thấy bất cứ điều gì cho tôi. Mã tôi đã thử không hoạt động.

cSlider: stop autoplay on mouseover hoặc autoplay video in slider hoặc JQuery autoplay video on click show

Thanks for the help.

+1

Bạn có thể xin vui lòng gửi HTML thực tế phát sinh –

Trả lời

7

Một workaround dễ dàng:

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

Check jsFiddle

+0

Cảm ơn bạn! đó là công việc ! –

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

Nó không cần thiết phải sử dụng các sự kiện giao nếu các yếu tố của bạn không tải động – kosmos

+0

nhưng nó hơn chung không? –

+0

Không hề. Mỗi cách là cho mỗi trường hợp. Ví dụ, với các sự kiện được ủy nhiệm, bạn không thể sử dụng 'event.stopPropagation()', bởi vì sự kiện đã ủy nhiệm tất cả các cách cho tới tài liệu. Điều này có thể ảnh hưởng đến hiệu suất nếu DOM của bạn sâu. Vì vậy, bạn nên sử dụng chúng khi cần thiết. – kosmos

Các vấn đề liên quan