使用jquery替换图片时悬停:定位问题

时间:2015-09-04 09:21:06

标签: jquery wordpress image jquery-hover

我一直在苦苦挣扎,因为我对jquery很新,而且我知道解决方案正在盯着我。

我在wordpress中有一个插件,它为我呈现jquery并且它正在工作,所以没有问题。有一个带有图像缩略图的wordpress页面,在悬停时,图像将被替换为图像的相同颜色版本。

如果你看到我的jsfiddle(我已经从wordpress中复制了html的摘录),我有点对了,但是它使用了第一个图像:nth-​​child()用于所有图像在那个页面上。这是一个目标问题(图像没有自己的ID)或者我没有在悬停时将新值重新分配给变量(链接,img等)。它会继续使用第一个图像细节,正如您在我的jsfiddle中看到的那样。

谢谢。

jQuery(document).ready(function () {

var link = $('.avia_image'),
    img = link.children('img:nth-child(1)'),
    orig = img.attr('src'),
    over = orig.replace('_1', '_2'); // this replaces the _1 in the filename with _2 for the 'over' variable assignment

link.hover(function () {
    $(this).attr('src', over);
}, function () {
    $(this).attr('src', orig);
});

});

2 个答案:

答案 0 :(得分:0)

我已经更新了小提琴。请看一下。

http://jsfiddle.net/p8n5gbsh/5/

jQuery(document).ready(function () {

    var link = $('a.avia_image');
    link.hover(function () {
        var img = $(this).children('img'),
        orig = img.attr('src'),
        over = orig.replace('_1', '_2');
        $(img).attr('src', over);
    }, function () {
        var img = $(this).children('img'),
        over = img.attr('src'),
        orig = over.replace('_2', '_1');
        $(img).attr('src', orig);
    });
});

答案 1 :(得分:0)

这是有效的,经过测试,我认为它是最佳代码(没有相同的代码两次)。

jQuery(document).ready(function () {    
    var orig = "";   
    var img;
    var link = $('a.avia_image');
    link.hover(function () {        
        img = $(this).find("img");
        //img = link.children('img:nth-child(1)'),
        orig = img.attr('src');
        var over = orig.replace('_1', '_2'); // this replaces the _1 in the filename with _2 for the 'over' variable assignment        
        img.attr('src', over);
        console.log(over);
    }, function () {
        img.attr('src', orig);
        console.log(orig);
        //link.unbind;
    });
});