javascript - event.preventdefault() 问题 - 尝试阻止 anchor 标记加载

标签 javascript html jquery jquery-events

我正在设置一个动态且响应式的视频库,您在其中单击缩略图,它会在更大的 <div> 中加载随附的视频。它上面。我遇到的问题是 event.preventdefault()显然不起作用,因为它仍然链接到 YouTube 而不是加载它。如有任何帮助,我们将不胜感激。

HTML

        <div class="mainvideo">
            <iframe src="https://www.youtube.com/watch?v=UAQ9-sl13zg" frameborder="0" allowfullscreen></iframe>
            <div id="mainvideowords">
                <h2>#</h2>
                <h3>#</h3>
            </div>
        </div>

        <div id="videogallery">

            <div class="littlevideo">
                <a href="https://www.youtube.com/embed/HsuzKk6udK8" class="video1"><img src="assets/placeholder.png"></a>
                <div class="littlevideowords">
                    <h4>#</h4>
                    <p>#</p>
                </div>
            </div>

JS

$(".video1, .video2, .video3").on("click", function(event) {
    event.preventDefault();
    $(".mainvideo iframe").prop("src", $(event.currentTarget).attr("src"));
});

最佳答案

虽然没有回答为什么 event.preventDefault() 不起作用,但我将如何解决这个问题。我会将 html 调整为如下所示:

<div class="mainvideo">
   <iframe id="playVideo" src="https://www.youtube.com/watch?v=UAQ9-sl13zg" frameborder="0" allowfullscreen ></iframe>
 // notice ^^^^^^^^^^^^^^
        <div id="mainvideowords">
       // rest of your code

<div id="videogallery">
    <div class="littlevideo">
        <div data-link="https://www.youtube.com/embed/HsuzKk6udK8" class="video1">
       // notice ^^^^^   
    <img src="assets/placeholder.png"></div>

那么你的 jquery 将如下所示:

$(function(){
    $('div[class^="video"]').click(function(){
        var src = $(this).data('link');
        $('#playVideo').prop('src', link);
    });
});

开头的选择器选择任何类以“video”开头的 div,因此您不必重复 video1、video2 等。然后,我们向单击的 div 添加了一个自定义 html5 数据属性使用 .data('src') 行访问。请参阅此处的文档:http://api.jquery.com/data/https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes .

最后,通过向 iframe 添加 id,我们可以直接选择它并更改视频的 src。

这是给你的 fiddle :http://jsfiddle.net/1sLdkyr2/1/

关于javascript - event.preventdefault() 问题 - 尝试阻止 anchor 标记加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39003726/

相关文章:

javascript - 如何在 Angular 上使用 Ajax

javascript - 将输入值传递给 window.open 方法

css - 无法设置div的宽度

javascript - 取消绑定(bind)并重新绑定(bind)文件类型的单击事件处理程序

javascript - Safari 和 $(window).on ('scroll' )

javascript - 异步回调的返回值(在单元测试中)

javascript - 将来自 console.log 的 webkit 控制台中的值放入变量中

javascript - jQuery Accordion ,单击已打开的 Accordion 项目只需切换它

html - 为 Flex 元素创建 CSS 填充实用程序?

javascript - 加载新页面而不刷新当前页面