我有以下函数来控制四个图像的不透明度属性,这些图像的 ID 分别是自行车、汽车、公共(public)汽车和步行。这是我编写的代码,用于在每次单击图像时更改不透明度。
function changebike() {
$('#bike').css('opacity','1.0');
$('#car').css('opacity','0.5');
$('#bus').css('opacity','0.5');
$('#walk').css('opacity','0.5');
};
function changecar() {
$('#bike').css('opacity','0.5');
$('#car').css('opacity','1.0');
$('#bus').css('opacity','0.5');
$('#walk').css('opacity','0.5');
};
function changebus() {
$('#bike').css('opacity','0.5');
$('#car').css('opacity','0.5');
$('#bus').css('opacity','1.0');
$('#walk').css('opacity','0.5');
};
function changewalk() {
$('#bike').css('opacity','0.5');
$('#car').css('opacity','0.5');
$('#bus').css('opacity','0.5');
$('#walk').css('opacity','1.0');
};
我需要写一个这样的函数
function changeItem(item) {
var elements = $('*').filter(function() {
var options=['0.5','1.0'];
return $.inArray($(this).css('opacity'), options) > -1;
});
elements.css('opacity','0.5');
$(item).css('opacity','1.0');
};
在 HTML 中,我这样调用函数
<img src="bike.png" id="bike" onclick="changeItem('#bike')" />
但是,上面的代码不起作用。请指出我的错误并更正代码。 :-) 谢谢
最佳答案
有点像,但是你必须定义你的 ID
function changeItem(item) {
var elementIDs = ["#bike", "#car", "#bus", "#walk"];
$.each(elementIDs, function(k, v){
var op = 0.5;
if( item == v )
op = 1;
$(v).css('opacity', op)
});
};
关于用于查找具有不透明度属性的元素的 jQuery 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8239089/