单击锚点时,我有一个div切换。当div显示时,我正试图通过类更改图标,当它被隐藏时,但代码不起作用。
有谁知道怎么做?
// Toggle design/code
$(".design-n-code").click(function(e) {
code.toggle();
}); code.hide();
// Handles the icon so users know it's active when code is visible.
if (code.is(':visible')) {
$(this).addClass('code-active');
} else {
$(this).removeClass('code-active');
}
答案 0 :(得分:2)
您必须将用于检查可见性的逻辑放入click
处理程序。否则,它只执行一次,这是脚本执行的整个开始。
// Toggle design/code
$(".design-n-code").click(function() {
code.toggle();
// Handles the icon so users know it's active when code is visible.
if (code.is(':visible')) {
$(this).addClass('code-active');
} else {
$(this).removeClass('code-active');
}
});
code.hide();
答案 1 :(得分:1)
代码可见性的测试应该在处理程序中。在处理程序中,this
指的是已点击的元素,因此您必须调用addClass / removeClass
来代替元素#icon-id
(将#icon-id
调整为正确的ID)。
// Toggle design/code
$(".design-n-code").click(function(e) {
code.toggle();
// Handles the icon so users know it's active when code is visible.
if (code.is(':visible')) {
$('#icon-id').addClass('code-active');
} else {
$('#icon-id').removeClass('code-active');
}
});
code.hide();
答案 2 :(得分:0)
你说你有一个锚点,当点击时,切换另一个元素,一个div。点击时使用'this'不会改变其他元素的类。
你会想要这样的东西:
HTML
<a href="#" id="toggler">CLick me to toggle the other div</a>
<div id="toBeToggled" class="IsShown">I have class abc</div>
JS
$('#toggler').click(function() {
var target = $('#toBeToggled');
if (target.is(":visible")) {
target.addClass('IsHidden').removeClass('IsShown');
target.hide();
// Demo purposes
console.log(target.attr('class'));
} else {
target.addClass('IsShown').removeClass('IsHidden');
target.show();
// Demo purposes
console.log(target.attr('class'));
}
});