当点击一个按钮时,需要JavaScript将一个图像源重置回原来的位置,在经过一个交换源的脚本之后

当点击一个按钮时,需要JavaScript将一个图像源重置回原来的位置,在经过一个交换源的脚本之后,javascript,jquery,html,image,Javascript,Jquery,Html,Image,我目前正在我的html文档中成功运行JavaScript,它允许我在悬停在各种缩略图上时交换主img。我已经成功地在不同的模态窗口中工作,每个模态窗口中有不同的图像选择 我的问题是,当我将鼠标悬停在一个图像上,“主img”更改为相应的缩略图后,当我关闭此窗口并打开另一个模式窗口时,“主img”仍然是前一个模式窗口中的前一次交换 这是用于“图像交换”的javascript: $(文档).ready(函数(){ //悬停时图像交换 $(“div#gallery li img”)。悬停(函数(){ $

我目前正在我的html文档中成功运行JavaScript,它允许我在悬停在各种缩略图上时交换主img。我已经成功地在不同的模态窗口中工作,每个模态窗口中有不同的图像选择

我的问题是,当我将鼠标悬停在一个图像上,“主img”更改为相应的缩略图后,当我关闭此窗口并打开另一个模式窗口时,“主img”仍然是前一个模式窗口中的前一次交换

这是用于“图像交换”的javascript:

$(文档).ready(函数(){
//悬停时图像交换
$(“div#gallery li img”)。悬停(函数(){
$('img#main img').attr('src',$(this.attr('src')).replace('thumb/','');
});
//图像预加载
var imgSwap=[];
$(“div#gallery li img”)。每个(函数(){
imgUrl=this.src.replace('thumb/','');
imgSwap.push(imgUrl);
});
$(imgSwap.preload();
});
$.fn.preload=函数(){
这个。每个(函数(){
$('
我试图通过创建一个辅助脚本来解决这个问题,该脚本通过点击按钮打开相应的模态,将主img的源代码重新加载或重置为每个模态的原始源代码。然而,我只是最近自学了jquery和java脚本,因此没有掌握代码的复杂性,因此可能存在一些obv错误或更好的方法来解决这个问题

$(document).ready(function() {
  // script reset and reload
  $("button.md-trigger").click(
    function(){
      $('img#main-img').attr('src','2.jpg');
  });
});  
如果你需要更多的信息,请告诉我

更新的代码仍不工作:

        $(document).ready(function() {
        var $mainImg = $('img#main-img');

            $mainImg.data('originalSrc', $mainImg.attr('src'));
            $("div#gallery li img").hover(function(){
            $mainImg.attr('src',$(this).attr('src').replace('thumb/', ''));
        }); 
         $("button.md-trigger").click(
            function(){
                $mainImg.attr('src', $mainImg.data('originalSrc'));
        });
        }

将其保存到数据元素中

var $mainImg = $('img#main-img');

$mainImg.data('originalSrc', $mainImg.attr('src'));
$("div#gallery li img").hover(function(){
  $mainImg.attr('src',$(this).attr('src').replace('thumb/', ''));
});

然后,当您想重新更改时,用
$mainImg.data('originalSrc')替换src

将其保存到数据元素中

var $mainImg = $('img#main-img');

$mainImg.data('originalSrc', $mainImg.attr('src'));
$("div#gallery li img").hover(function(){
  $mainImg.attr('src',$(this).attr('src').replace('thumb/', ''));
});

然后,当您想将其更改回原来的状态时,用
$mainImg.data('originalSrc')替换src

那么按钮点击代码不起作用吗?不,按钮点击不起作用,可能有更好的方法解决这个问题。我需要按钮将src重置为原始的,而不是我代码中的标记.jpg。因此,你需要将其存储到它是什么。很难从代码中看出它会是什么。我的基本问题是当从一个模式窗口移动到另一个模式窗口,前一个窗口的图像显示在该模式窗口的“主img”位置。那么按钮点击代码是否不起作用?否按钮点击不起作用,可能有更好的方法解决问题。我需要按钮将src重置为原始否在我的代码中没有一个标记的.jpg。所以你需要将它存储到它是什么。很难从代码中分辨出它是什么。我的基本问题是,当从一个模式窗口移动到另一个模式窗口时,前一个窗口中的图像出现在该模式窗口的“主img”应该出现的位置。相对于现有的cod,这会出现在哪里e?如果
$('img#main img').attr('src','2.jpg');
是您的“重置”行,那么
'2.jpg'
将被
$mainImg.data('originalSrc')替换
命令,正如我在回答的最后一行中提到的。如果你试图重置它,那就是你使用该命令的地方。你能确认这是否正确吗,它还没有解决我的问题,但它可能实现不正确,因为我已经掌握了编写JavaScript的方法,目前只能进行基本编辑。我已将代码的第一部分输入到我的javascript中,然后将其放入:$('button.md trigger')。单击(function(){$('img#main img').attr('src',$mainImg.data('originalSrc');});}@ReganBoyce看起来不错,但更改
$('img#main img').attr('src',$mainImg.data('originalSrc'));
$maiimg.attr('src',$maiimg.data('originalSrc'))
$mainImg
已经是元素,因此无需再次查找。我将在问题的底部添加我的当前代码作为编辑,因为不幸的是,它仍然不起作用,这可能会使我犯下另一个错误,感谢您的帮助。到目前为止,在引用现有代码时,这将转到何处?如果
$('img#main img').attr('src','2.jpg');
是您的“重置”行,那么
'2.jpg'
将替换为
$mainImg.data('originalSrc'))
命令,正如我在回答的最后一行中提到的。如果你试图重置它,那就是你使用该命令的地方。你能确认这是否正确吗,它还没有解决我的问题,但它可能实现不正确,因为我已经掌握了编写JavaScript的方法,目前只能进行基本编辑。我已将代码的第一部分输入到我的javascript中,然后将其放入:$('button.md trigger')。单击(function(){$('img#main img').attr('src',$mainImg.data('originalSrc');});}@ReganBoyce看起来不错,但更改
$('img#main img').attr('src',$mainImg.data('originalSrc'));
$maiimg.attr('src',$maiimg.data('originalSrc'))
$mainImg
已经是元素,因此无需再次查找。我将把我当前的代码作为编辑添加到问题的底部,因为不幸的是,它仍然不起作用,这可能会使我犯下另一个错误,感谢您迄今为止的帮助