javascript - 单击链接中的更改文本不起作用?

标签 javascript jquery

我想在链接上实现的目标是单击文本更改为第二个跨度;然而,这是行不通的。

脚本

var reload = false;
$('#change').click(function() {
    reload = !reload;
    $('#change').click(function() {
    $('span',this).toggle();
    });
});

HTML

<li role="presentation" class="pull-right">
<a href="#" id="change">
<span>text 1</span><span style="display:none">text 2</span>
</a>
</li>

最佳答案

你已经用一个标志和嵌套的事件处理程序将它复杂化了,只需删除它就可以了

$('#change').click(function() {
    $('span', this).toggle();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
    <li role="presentation" class="pull-right">
        <a href="#" id="change">
            <span>text 1</span><span style="display:none">text 2</span>
        </a>
    </li>
</ul>

当您将事件处理程序彼此嵌套时,您会在每次点击时不断绑定(bind)新的事件处理程序,并且它们会不断相互抵消,并且不会按预期工作。
这就是为什么您通常不应嵌套事件处理程序。

关于javascript - 单击链接中的更改文本不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40063126/

相关文章:

javascript - 以下函数中加号 (+) 的作用是什么,该函数摘自 jquery 源代码

jquery - 如何让 .getJson 成功

c# - 结果页面仅适用于 IE

jquery - 从行中删除一列

javascript - 带有 ajax 调用的 setTimeout

javascript - Kendo ui 下拉列表删除特定项目

Javascript:返回一个绑定(bind)输入,该输入是先前输入的结果

javascript - 使用 js 或 jquery 将变量从页面传递到已打开的页面

javascript - 如何创建允许多行数据的 &lt;input type ="text"/> 标签。不要说使用 textarea 标签

javascript - 使用异或变量计算