2013-01-14 67 views
0

我的网页上有一个div,里面有一个图像,点击div展开后,我将图像转换为相应的hi分辨率版本。使用jQuery切换高分辨率图像和低分辨率图像

我用下面这样...

$('.work-showcase').click(function(){ 
    if (!$(this).hasClass('active')){ 
     var img = $(this).find('ul li img'); 
     img.attr('src', function(i, value) { 
      return '_includes/images/work/hires/' + value; 
     }); 
    } else { 
     var img = $(this).find('ul li img'); 
     img.attr('src', function(i, value) { 
      return '' + value; 
     }); 

    }; 
}); 

我的问题是最后一部分,但是我需要删除'_includes /图片/工作/员工/“”

能有人推荐一个解决方案?

+0

解决方案到底是什么? –

回答

3

您需要删除附加路径才能恢复以前的网址,您可以使用replace()删除前缀路径。

变化

return '' + value; 

return value.replace('_includes/images/work/hires/', ''); 
2
var path = '_includes/images/work/hires/'; 
$('.work-showcase').click(function(){ 
    if (!$(this).hasClass('active')){ 
     var img = $(this).find('ul li img'); 
     img.attr('src', function(i, value) { 
      return path + value; 
     }); 
    } else { 
     var img = $(this).find('ul li img'); 
     img.attr('src', function(i, value) { 
      return value.substring(path.length); 
     }); 

    }; 
}); 

这里是关于子()http://www.w3school.com.cn/js/jsref_substring.asp文档。

+0

太棒了,谢谢@pktangyue! – Liam

+0

我建议避免幻数('28'),所以像Adil的解决方案或类似的东西'var path ='_includes/images/work/hires /';',第一种情况是:'return path + value;'并在第二个:'返回value.substring(path.length);'。 –

+0

@SamuelCaillerie好吧,我可以将28改为'path.length'。我会尽快更新代码。 – pktangyue