我正在使用Adipoli jQuery Image Hover Effects,但是在更改某些属性时遇到问题。图像变为灰度,鼠标悬停变为颜色,但是然后我设置为单击图像时应保持彩色,但它已损坏,因为不是替换图像,而是在顶部添加了图像,并在其上添加了另一个图像(但未定义,因此它没有显示)。以下是我正在使用的代码,但是您可以从www.filedropper.com/adipoli-test下载完整示例

<script type="text/javascript">
$(document).ready(function() {
    $('#image1').adipoli({
        'startEffect' : 'grayscale',
        'hoverEffect' : 'popout'
    });
});

function select(n){
    $('#image1').adipoli({
        'startEffect' : 'normal',
        'hoverEffect' : 'popout'
    });
}
</script>
<div style="width:650px; height: 400px; display:block; margin: 60px;">
 <a href="javascript:void(0)" onclick="select(1)"><img src="image1.jpg" class="img1" id="image1"></a>
</div>


我真的很想做到这一点,我希望一些jQuery专家可以帮助我。

最佳答案

我制作了新的jquery函数“ adipoliDestroy”,该函数从元素中破坏了adipoli。现在,在元素上重新初始化adipoli之前,请再次调用destroy和init adipoli。

(function($){
    $.fn.adipoliDestroy = function(){
        var clone = this.clone().css('display', 'block'),
                wrapper = null;
        if (wrapper = this.parents('.adipoli-wrapper')){
            wrapper.replaceWith(clone);
        }
        return clone;
    }
})(jQuery);

function select(n){
    $('#image1').adipoliDestroy().adipoli({
        'startEffect' : 'normal',
        'hoverEffect' : 'popout'
    });
}

10-06 08:21