到目前为止我有这个代码:
$(document).ready(function(){
$('li').each(function() {
$(this).on('shown', function () {
$(this).children().attr("src", "http://test.cz.vs1056.server4u.cz/images/right.jpg");
});
$(this).on('hidden', function () {
$(this).children().attr("src", "http://test.cz.vs1056.server4u.cz/images/down.jpg");;
});
});
});
我试图根据
我不确定为什么我的jQuery不会工作。我搜索所有
感谢您的建议
答案 0 :(得分:0)
DEMO:MY FIDDLE
点击时没有得到结果的原因是由于以下问题:
没有任何点击事件绑定到LI。目前您只是在页面加载时加载图像。
您没有指定隐藏或显示哪个元素。通过添加.next()
你的'告诉DOM查看LI列表中的下一个元素,并查看它是否隐藏。
我会试试这个:
$(document).ready(function(){
function checkOnLoad(elem){
if(elem.next().css("display") === "none"){
elem.find('img').attr("src", "http://test.cz.vs1056.server4u.cz/images/right.jpg");
} else {
elem.find('img').attr("src", "http://test.cz.vs1056.server4u.cz/images/down.jpg");
}
}
function checkOnClick(li_clicked){
var id = li_clicked.attr("data-target");
$(id).on('hidden.bs.collapse', function () {
li_clicked.children('img').attr("src", "http://test.cz.vs1056.server4u.cz/images/right.jpg");
})
$(id).on('shown.bs.collapse', function () {
li_clicked.children('img').attr("src", "http://test.cz.vs1056.server4u.cz/images/down.jpg");
})
}
$('li').each(function() {
checkOnLoad($(this));
});
$('li').click(function() {
checkOnClick($(this));
});
});
答案 1 :(得分:0)
您需要收听引导程序的shown.bs.collapse
和hidden.bs.collapse
事件,而不是仅仅显示'并且隐藏了'。
试试这样:
$(document).ready(function(){
$('li').each(function() {
var li = $(this);
li.on('shown.bs.collapse', function () {
li.children().attr("src", "http://test.cz.vs1056.server4u.cz/images/right.jpg");
});
li.on('hidden.bs.collapse', function () {
li.children().attr("src", "http://test.cz.vs1056.server4u.cz/images/down.jpg");;
});
});
});
答案 2 :(得分:0)
这有效,但不确定为什么。
$(document).ready(function(){
function checkCollapsed(elem){
if(elem.next().css("display") === "none"){
elem.children().attr("src", "http://test.cz.vs1056.server4u.cz/images/right.jpg");;
} else {
elem.children().attr("src", "http://test.cz.vs1056.server4u.cz/images/down.jpg");
}
}
function checkCollapsed2(elem){
if(elem.next().css("display") === "none"){
elem.children().attr("src", "http://test.cz.vs1056.server4u.cz/images/down.jpg");;
} else {
elem.children().attr("src", "http://test.cz.vs1056.server4u.cz/images/right.jpg");
}
}
$('li').each(function() {
checkCollapsed($(this));
});
$('li').click(function() {
checkCollapsed2($(this));
});
});