单击更改链接中的文本无效
Onclick change text in a link not working?
我试图在链接上实现的目标单击文本更改到第二个span;然而,这并不奏效。
脚本
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>
当您将事件处理程序嵌套在彼此内部时,每次单击时都会绑定新的事件处理程序,它们会不断相互抵消,这将无法按预期工作
这就是为什么您通常不应该嵌套事件处理程序。
<li role="presentation" class="pull-right">
<a href="#" id="change">
<span>text 1</span><span style="display:none">text 2</span>
</a>
</li>
<script type="text/javascript">
$('#change').click(function() {
$('span').toggle();
});
</script>
但你并不真的需要jquery:
<li role="presentation" class="pull-right">
<a href="#" id="change">
<span>text 1</span>
<span hidden>text 2</span>
</a>
</li>
<script type="text/javascript">
function toggle () {
document.getElementsByTagName('span').hidden = !document.getElementsByTagName('span').hidden;
}
document.getElementById('change').addEventListener('click', toggle);
</script>
相关文章:
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- 数组在手动写入时有效,但从文本文件加载时无效
- 检查输入/文本区域中粘贴的文本是否存在无效的章程
- 使值为所有空格的文本框无效
- IE10+上的AngularJS,带有占位符原因的文本区域“;无效参数&”;
- D3:x 轴上的日期名称:<文本>属性 x=“NaN”的值无效
- 更改无效(错误答案)的段落颜色和文本颜色
- 未终止的字符串文本/无效或意外的令牌
- Ajax自动完成扩展器防止在文本框中键入无效值
- 在PopupPanel中添加图像和更改文本字体大小无效
- 限制文本框输入2到998之间的数字无效
- Tab分隔符在Chrome文本区域无效-Javascript
- 在文本区域中用红色突出显示无效的电子邮件地址
- 防止在文本输入中插入无效字符
- 单击更改链接中的文本无效
- 自定义HTML中无效字段的文本
- 覆盖moment js默认的无效日期文本
- 使用val(value)设置文本框的值无效
- 在IE11中通过jQuery添加文本无效
- 悬停时更改文本无效