javascript - 锚定图像和 preventDefault()

标签 javascript jquery html

我编写了一个允许用户搜索图像的小脚本。提交搜索时,在 HTML 中创建并附加了一个大的主图像和许多缩略图。图像文件由 CSS 远程托管和格式化。主图像应该被单击的任何缩略图替换,但我似乎无法让它工作,event.preventDefault() 也没有工作。我感觉这是 jQuery 选择器的问题,但我尝试了多种不同的配置,但没有任何效果。任何帮助表示赞赏。

<div id="photos">
    <div id="mainImage">
        <a href="http://drive.google.com/pic1.jpg" target="_blank" class="main">
            <img src="http://drive.google.com/pic1.jpg" alt="Pic 1" />
        </a>  
    </div>
    <div id="thumbs">  
        <a href="http://drive.google.com/pic1.jpg" class="thumb">
            <img src="http://drive.google.com/pic1.jpg" alt="Pic 1" class="thumbnail"/>
        </a>
        <a href="http://drive.google.com/pic2.jpg" class="thumb">
            <img src="http://drive.google.com/pic2.jpg" alt="Pic 2" class="thumbnail"/>
        </a>
        <a href="http://drive.google.com/pic3.jpg" class="thumb">
            <img src="http://drive.google.com/pic3.jpg" alt="Pic 3" class="thumbnail"/>
        </a>
    </div>
</div>



$('a.thumb img.thumbnail').on('click', function(event) {
    event.preventDefault();

    var src = $('img.thumbnail').attr('src'), alt = $('img.thumbnail').attr('alt');

    $('a.main').attr('href', src);
    $('a.main img').attr({'src': src, 'alt': alt});  
});      

最佳答案

也许你应该试试这个:

$('div#thumbs a.thumb').on('click', function(event) {
    event.preventDefault();

    var image = $(this).find('img');
    var src = image.attr('src');
    var alt = image.attr('alt');

    $('div#mainImage a.main').attr('href', src);
    $('div#mainImage a.main img').attr({'src': src, 'alt': alt});  
});

首先,您要阻止对图像而不是 anchor 的默认点击操作。 其次,使用$('img.thumbnail')会在代码中返回多个对象。

关于javascript - 锚定图像和 preventDefault(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27515207/

相关文章:

javascript - 自动完成两个字段没有任何反应

javascript - 如何隐藏表格中的每隔一行?

forms - 输入类型范围显示文本框而不是 slider

javascript - 如果mongodb中存在相同的key,如何更新数据?

Javascript 揭示模块模式 Noob

javascript - 如何使用jquery显示mailmunch pop

javascript - 将破坏 html 的字符添加到输入中

javascript - jstree select_node.jstree 未触发

html - 如何在不嵌套额外容器的情况下垂直对齐内容?

javascript - 将包含时间的字符串转换为 24 小时时间我可以用 - jQuery 做数学