我正在尝试做一个简单的图像交换,但是当我为交换添加代码时,它不起作用!我有一个功能,可以切换使用CSS进行动画处理的不同类,该类在没有图像交换代码的情况下也可以正常工作,但是一旦添加所有代码,它就会中断!
有人可以快速对我的代码进行问题排查吗?我觉得我的JQuery逻辑有点不对劲。
jQuery(document).ready(function () {
var toggle = 0;
var toggleClass = function () {
toggle = !toggle;
$(".two").toggleClass("two-menu", toggle);
$(".four").toggleClass("four-menu", toggle);
$(".images").toggleClass("images-menu", toggle);
$(".home").toggleClass("home-menu", toggle);
$("#bottom-left").toggleClass("bottom-left", !toggle);
$("#bottom-right").toggleClass("bottom-right", !toggle);
$("#margin-zero").toggleClass("margin-zero", !toggle);
$(".left-container").toggleClass("left-container-show", toggle);
$(".right-container").toggleClass("right-container-show", toggle);
}
var imageSwap = function () {
this.src = '/wp-content/uploads/2013/11/Twitter.jpg';
}, function () {
this.src = '/wp-content/uploads/2013/11/Facebook.jpg';
}
jQuery(".home").click(function () {
toggleClass();
});
jQuery(".two").click(function () {
toggleClass();
imageSwap();
});
jQuery(".four").click(function () {
toggleClass();
});
});
我创建了两个JSFiddles。
1)第一个不起作用,并且包含
imageSwap
函数。 http://jsfiddle.net/MuQ2w/2)第二个没有
imageSwap
,并且运行良好。 http://jsfiddle.net/E2Rzv/ 最佳答案
您遇到的问题是由于jQuery imageSwap函数的语法所致,因为您无法编写两个用“逗号”分隔的函数。
我认为可能的解决方案可能是删除第二个功能。
同样,imageSwap函数不知道“ this”,因为它超出了范围。您需要将“ this”作为参数传递给它。
因此,最终的imageSwap函数将如下所示:
var imageSwap = function ($this) {
$this.src = '/wp-content/uploads/2013/11/Facebook.jpg';
}
您对该函数的调用将类似于:
jQuery(".two").click(function () {
imageSwap(this);
toggleClass();
});
希望对您有所帮助。
附言只是为了遵循传统,这是一个有用的小提琴:
jsfiddle.net/gKxLz
关于javascript - jQuery图像交换和动画不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21241273/