这是jQuery代码:
$("#web").hover(
function () {
$(this).css({
'background-color': '#ecf5fb',
'cursor': 'pointer',
'border': '1px solid #378ac4'
})
.children("a").children("img").attr("src", "1.png")
.end().children("p").css("opacity", "1.0");
$('#commentweb').stop(true, true).fadeIn();
},
function () {
$(this).css({
'background-color': '#e8e3e3',
'border': '1px solid grey'
})
.children("a").children("img").attr("src", "2.png")
.end().children("p").css("opacity", "0.5");
$('#commentweb').stop(true, true).fadeOut();
}
);
问题是不透明度没有改变,而其他一切都有效。但如果不是这个代码,我写
$(this).css({
'background-color': '#ecf5fb',
'cursor': 'pointer',
'border': '1px solid #378ac4'
})
.children("a").children("img").attr("src", "1.png");
$(this).children("p").css("opacity", "1.0");
它有效。为什么会这样?
答案 0 :(得分:2)
如果您想要返回原始选择,则必须拨打.end()
两次,因为您在链上给孩子打了两次电话。
$("#web").hover(
function () {
$(this).css({
'background-color': '#ecf5fb',
'cursor': 'pointer',
'border': '1px solid #378ac4'
})
.children("a").children("img").attr("src", "1.png")
.end().end().children("p").css("opacity", "1.0");
$('#commentweb').stop(true, true).fadeIn();
},
function () {
$(this).css({
'background-color': '#e8e3e3',
'border': '1px solid grey'
})
.children("a").children("img").attr("src", "2.png")
.end().end().children("p").css("opacity", "0.5");
$('#commentweb').stop(true, true).fadeOut();
}
);
答案 1 :(得分:1)
如果你想回到原来的jquery对象,你需要在那里添加一个额外的.end() - 每个过滤动作都在堆栈上放置一个新的jquery对象 - 每次调用.end()“pops”堆栈中的最后一个。这是一个更新的小提琴:http://jsfiddle.net/mMB3F/7/