javascript - JQuery - 将类添加到元素上,然后与该类交互不起作用

标签 javascript jquery

当您单击 ( ".toggle-button a") 时,它会向自身添加 .close 类。并在 .info-overlay

中淡出

这工作正常,但是当您再次单击它时,我希望 info-overlay 再次淡出,并且 close 类被删除。但这不起作用。

我在这里遗漏了什么吗?

http://jsfiddle.net/bazzle/xpS9P/1/

html

<div class="toggle-button">
<a>click</a>
</div>
<div class="info-overlay">
content
</div>

CSS

.info-overlay{
display:block;
width:100px;
height:100px;
background-color:green;
display:none;
};

js

    $( ".toggle-button a" ).click(function() {
    $( ".info-overlay" ).fadeIn("500");
    $(this).addClass('close');
});
$( ".toggle-button a.close" ).click(function(){
    $( ".info-overlay").fadeOut("500");
    $(this).removeClass('close');
});

最佳答案

使用事件委托(delegate):

改变

$( ".toggle-button a.close" ).click(function(){
    $( ".info-overlay").fadeOut("500");
    $(this).removeClass('close');
});

至:

$(document).on('click',".toggle-button a.close",function(){
    $( ".info-overlay").fadeOut("500");
    $(this).removeClass('close');
});

因为 .click() 是附加并忘记处理程序,但 .on() 是动态的。

关于javascript - JQuery - 将类添加到元素上,然后与该类交互不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23057909/

相关文章:

php - 使用 Ctrl+Click 选择多个图像并使用 PHP 上传

jQuery Select2 不接受特殊字符

javascript - D3 : Merge interior svg paths?

javascript - 在柱形图后面渲染的样条线

c# - 我想从 GridView 中删除记录。在此之前要求确认,如 "Are you sure to delete?"

javascript - Highchart 在图例鼠标悬停时在中心显示文本

jquery - 向上滚动时粘性侧边栏 : stick to bottom when scrolling down, 顶部

javascript - 如何使用 .appendTo() 和字符串变量来更新 DOM

javascript - var result = wait someFunc() 返回一个对象,但我期望对象列表

javascript - 如果未选中复选框,则禁用 Bootstrap 输入按钮