javascript - 为什么我的 src 切换使用 jquery 和左/右 keyup 事件随机中断?

标签 javascript jquery html css

我想使用 jquery 建立一个相册,但我大部分时间都在使用它,但出于某种原因,有时 src 没有得到正确的更改(大多数时候它会更改),即使事件的拇指类是正确并交换,我尝试了一切,但有一个错误让我无法理解

HTML

<div class="container gallery">
    <div class="row">
        <div class="col-xs-offset-2 col-xs-8 bigImgArea">
            <img src="" class="fullImg">
        </div><!-- end bigImgArea -->
    </div><!-- end row -->
    <div class="row">
        <div class="col-xs-12 thumbnails">
            <img src="IMG_8943_thumb.jpg" class="thumb active">
            <img src="22_thumb.jpg" class="thumb">
            <img src="IMG_8943_thumb.jpg" class="thumb">
        </div><!-- end thumbnails --> 
    </div><!-- end row -->
</div><!-- end gallery -->

脚本

$(document).ready(function (){
    var next = $(".active").next().attr("src");
    var prev = $(".active").attr("src");
    $(".thumb").hover(function(){
             $(this).css("cursor","pointer");
        });

        $(".thumb").mousedown(function (){       
        var regex = $(this).attr("src");
         regex = regex.replace("_thumb", ""); //images and thumbnails have same filename, extept thumbs have _thumb at the end
          $(".fullImg").hide().attr("src",regex).fadeIn(600); 
        });

    $(document).keyup(function(e){
 // go right from active thumb
        if (e.keyCode == 39){
            var regex = next.replace("_thumb", "");
            $(".fullImg").hide().attr("src",regex).fadeIn(600);                                                
            next = $(".active").next().attr("src");
            prev = $(".active").attr("src");
            curr = $(".active");
            $(".active").next().addClass("active");
            curr.removeClass("active");
            regex= "";
 // go left
        } else if(e.keyCode == 37){
            var regex = prev.replace("_thumb", "");
            $(".fullImg").hide().attr("src",regex).fadeIn(600);
            curr = $(".active");
            $(".active").prev().addClass("active")         
            curr.removeClass("active");
            next = $(".active").next().attr("src");
            prev = $(".active").attr("src");
            regex ="";                
        }            
    });
    console.log(c);
});

最佳答案

你能试着设置一个 fiddle 吗?据我所知,你最好换掉 <img/>

要么克隆()下一个/上一个并用它替换'事件'。

切换 src 属性总是“有风险的”并且支持很差。 根据我的内存,FF 有一个错误,您需要先更改为“#”,然后切换到新的图像源。

同样,我建议您切换整个 <img/>标签

关于javascript - 为什么我的 src 切换使用 jquery 和左/右 keyup 事件随机中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39293905/

相关文章:

jquery - 以 bootstrap x-editable 形式设置最大长度

html - 绝对位置但相对于父级

html - 为什么显示:block not stretch buttons or input elements

javascript - angularjs ui-select 中的 Tab 键顺序

javascript - 将 src 动态设置为 dataURI 时,Img.onload 未触发

javascript - 如何在jquery中搜索属性值的一部分?

jquery - Bootgrid 求和列并在页脚中显示结果

jquery - css 或 jquery 中的圆形停靠栏/菜单

javascript - 链上更远的已完成 promise 会得到 GC 吗?

javascript - jQuery 替换表格中的内容