javascript - 在 .append 之后运行函数

标签 javascript jquery html css

我有以下 html 代码:

<div>
   <div id="a"></div>
</div>

当点击 id="a"的 div 时,我想用以下 div 替换这个 div:

<div id="b"></div>

我设法创建了以下 fiddle :http://jsfiddle.net/ucant5uy/ 在此 fiddle 中,您可以看到第一个函数(单击#a)运行完美,但第二个函数(单击#b)未运行,因为页面加载时div #b不存在。

然后我决定将第二个函数放在第一个函数中: http://jsfiddle.net/ucant5uy/2/ 。正如您所看到的,您可以单击 #a 一次,然后单击 #b 一次,然后代码就会停止工作。我希望能够根据需要多次单击 #a 和 #b。我知道你可以通过一些简单的 CSS 技巧来实现这一点(将两个 div 添加到 HTML 并使用 display:none;),但我想知道是否可以使用 .append() 来实现相同的目标。

提前致谢!

最佳答案

你应该将函数绑定(bind)到父div(它是main),它存在于DOM中并且将存在,否则你只能将函数分配给已经存在的元素在 DOM 中。

$(document).ready(function() {
        $('#main').on("click","#a",function() {
            $(this).parent().append('<div id="b"></div>');
            $(this).remove();
        })
        
        $('#main').on("click","#b",function() {
            $(this).parent().append('<div id="a"></div>');
            $(this).remove();
        })
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="main">
    <div id="a"></div>
</div>

关于javascript - 在 .append 之后运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29353625/

相关文章:

javascript - 如何将 getElementById 切换为 getElementsByClassName

javascript - 使用 angularjs 指令时 Fine Uploader 出现错误

javascript - 在类似 HTML Excel 的电子表格中更新单元格时减少延迟

JQuery 提取子域并传递给变量

javascript - AJAX - OnSubmit 问题

javascript - 我的固定 Header 没有 margin-right 吗?

python - 使用 python 填写文本类型的输入并按提交

php - 使用 PHP 将数据插入 MySQL 数据库出现错误

javascript - 使用 ember 进行动态分页

javascript - 如何让HTML代码更具可读性?