Javascript 未执行的函数

Javascript 未执行的函数,javascript,html,Javascript,Html,编辑:我已经更新了函数,这是从 因此,在我的网页中,我有一个图像和两个按钮。我想完成的是,当第一个按钮被点击,然后图像改变为另一个这是工作,然后我希望该图像褪色。我有一个函数,它接收一个对象并使其消失,但由于某种原因它不起作用。然后,我尝试将该功能添加到按钮中,但即使单击按钮,旧的和新的图像也不会改变 我首先像这样显示图像 然后淡入淡出功能看起来像这样 var fadeEffect=function(){ return{ init:function(id, flag, t

编辑:我已经更新了函数,这是从

因此,在我的网页中,我有一个图像和两个按钮。我想完成的是,当第一个按钮被点击,然后图像改变为另一个这是工作,然后我希望该图像褪色。我有一个函数,它接收一个对象并使其消失,但由于某种原因它不起作用。然后,我尝试将该功能添加到按钮中,但即使单击按钮,旧的和新的图像也不会改变

我首先像这样显示图像

然后淡入淡出功能看起来像这样

var fadeEffect=function(){
    return{
        init:function(id, flag, target){
                this.elem = document.getElementById(id);
            clearInterval(this.elem.si);
            this.target = target ? target : flag ? 100 : 0;
            this.flag = flag || -1;
            this.alpha = this.elem.style.opacity ? parseFloat(this.elem.style.opacity) * 100 : 0;
            this.elem.si = setInterval(function(){fadeEffect.tween()}, 20);
        },
        tween:function(){
            if(this.alpha == this.target){
                clearInterval(this.elem.si);
            }else{
                var value = Math.round(this.alpha + ((this.target - this.alpha) * .05)) + (1 * this.flag);
                this.elem.style.opacity = value / 100;
                this.elem.style.filter = 'alpha(opacity=' + value + ')';
                this.alpha = value
            }
        }
    }
}();
function changeImage(obj,img) {
    document.getElementById(obj).src = img;
    fadeEffect.init('chestImg', 0)
}
解决方案修复尝试一

我尝试在changeImage函数之后添加一个对淡入淡出函数的调用,这样看起来就像这样

var fadeEffect=function(){
    return{
        init:function(id, flag, target){
                this.elem = document.getElementById(id);
            clearInterval(this.elem.si);
            this.target = target ? target : flag ? 100 : 0;
            this.flag = flag || -1;
            this.alpha = this.elem.style.opacity ? parseFloat(this.elem.style.opacity) * 100 : 0;
            this.elem.si = setInterval(function(){fadeEffect.tween()}, 20);
        },
        tween:function(){
            if(this.alpha == this.target){
                clearInterval(this.elem.si);
            }else{
                var value = Math.round(this.alpha + ((this.target - this.alpha) * .05)) + (1 * this.flag);
                this.elem.style.opacity = value / 100;
                this.elem.style.filter = 'alpha(opacity=' + value + ')';
                this.alpha = value
            }
        }
    }
}();
function changeImage(obj,img) {
    document.getElementById(obj).src = img;
    fadeEffect.init('chestImg', 0)
}
解决方案修复尝试二

但这不起作用,所以我试着把它添加到一个按钮上,就像这样。注:最后,我不想为淡入淡出功能按钮,但它正在运行后,图像被改变

然后这样称呼它

<button id="openChest" onclick="fade('chestImg')" > Hide </button>

但那没用。

我是完全离开了,还是应该离开

var fadeEffect={
    init:function(id, flag, target){
        this.elem = document.getElementById(id);
        clearInterval(this.elem.si);
        this.target = target ? target : flag ? 100 : 0;
        this.flag = flag || -1;
        this.alpha = this.elem.style.opacity ? parseFloat(this.elem.style.opacity) * 100 : 0;
        this.elem.si = setInterval(function(){fadeEffect.tween()}, 20);
    },
    tween:function(){
        if(this.alpha == this.target){
            clearInterval(this.elem.si);
        }else{
            var value = Math.round(this.alpha + ((this.target - this.alpha) * .05)) + (1 * this.flag);
            this.elem.style.opacity = value / 100;
            this.elem.style.filter = 'alpha(opacity=' + value + ')';
            this.alpha = value;
        }
    }
};

至少,其中只有一个可以在浏览器中工作,另外两个应该会出错

    this.elem.style.opacity = value / 100;
    this.elem.style.filter = 'alpha(opacity=' + value + ')';
    this.alpha = value

最好检查哪个属性有效,然后定义一个同名函数来调整相应的属性。但是现在。尝试在chrome中使用不透明度。

好的onclick='fadeEffect.init'chestImg',0'有引号问题,它应该像'onclick=fadeEffect.init'chestImg',0'一样吗?因为这仍然不起作用。@user2612619:您可能想查看一下您正在立即调用函数并将结果返回给变量的链接,我完全不确定这是否起作用。做一个控制台。logfadeEffect!我为你做了一把小提琴,它到底应该做什么?这不起作用,事实上,当添加其他任何东西都不起作用时,所以我假设它有问题。这次页面很好,但当我单击“隐藏”时没有发生任何事。@user2612619找到控制台了吗?是的,单击“隐藏”时没有显示任何内容。您在第一部分中只使用了相当复杂的javascript代码,但fadeOut是一个jQuery函数,请问您是否安装了它我已经在帖子中更新了函数的原始代码。现在,单击后,img将闪烁。当我重新找到它的时候,我已经把它贴在哪里了。我的代码和他们的一样。
<button id="openChest" onclick="fade('chestImg')" > Hide </button>
var fadeEffect={
    init:function(id, flag, target){
        this.elem = document.getElementById(id);
        clearInterval(this.elem.si);
        this.target = target ? target : flag ? 100 : 0;
        this.flag = flag || -1;
        this.alpha = this.elem.style.opacity ? parseFloat(this.elem.style.opacity) * 100 : 0;
        this.elem.si = setInterval(function(){fadeEffect.tween()}, 20);
    },
    tween:function(){
        if(this.alpha == this.target){
            clearInterval(this.elem.si);
        }else{
            var value = Math.round(this.alpha + ((this.target - this.alpha) * .05)) + (1 * this.flag);
            this.elem.style.opacity = value / 100;
            this.elem.style.filter = 'alpha(opacity=' + value + ')';
            this.alpha = value;
        }
    }
};
    this.elem.style.opacity = value / 100;
    this.elem.style.filter = 'alpha(opacity=' + value + ')';
    this.alpha = value