[英]jquery works on second click only (but works fine in localhost…)
[英]Jquery works after second click then keeps working fine
这是脚本,可以正常运行,但在第二次单击时便开始工作。 它应该从第一次点击就可以工作。
function change_text() {
var button = document.getElementById('toggle_button');
if (button.innerHTML === "Edit") {
button.innerHTML = "Save";
} else {
button.innerHTML = "Edit";
}
}
这是html:
<h3 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#tsAccordion" href="#tsCollapseOne;#tsCollapseTwo">
<span class="pull-right" id="toggle_button" onclick="change_text()" style="text-decoration: underline; color: orange; text-align: center; font-size: 16px; margin-top: -54px"> Edit </span>
</a>
</h3>
请帮忙。
function change_text() { var button = document.getElementById('toggle_button'); if (button.innerHTML === "Edit") { button.innerHTML = "Save"; } else { button.innerHTML = "Edit"; } }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <h3 class="panel-title"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#tsAccordion" href="#tsCollapseOne;#tsCollapseTwo"> <span class="pull-right" id="toggle_button" onclick="change_text()" style="text-decoration: underline; color: orange; text-align: center; font-size: 16px; margin-top: -54px"> Edit </span> </a> </h3>
您需要在button.innerHTML
trim()
用作button.innerHTML
为您提供值Edit
带有尾部和前导空格)。 因此,条件button.innerHTML === "Edit"
为false
因为它具有Edit
尾随whilespace值。 因此,执行else
块,其取代button.innerHTML
与值Edit
而不尾随和领先空格。 这就是为什么它可以进行第二次单击的原因,就像第二次单击按钮一样button.innerHTML
值是Edit
而没有空格,并且if
condition为true
。
function change_text() { var button = document.getElementById('toggle_button'); if (button.innerHTML.trim() === "Edit") { button.innerHTML = "Save"; } else { button.innerHTML = "Edit"; } }
<h3 class="panel-title"> <a class="accordion-toggle" data-toggle="collapse" data-parent="#tsAccordion" href="#tsCollapseOne;#tsCollapseTwo"> <span class="pull-right" id="toggle_button" onclick="change_text()" style="text-decoration: underline; color: orange; text-align: center; font-size: 16px; margin-top: -54px"> Edit </span> </a> </h3>
只需在“编辑”之前和之后删除html中的多余空格,或者在比较之前使用修剪。
您的函数是第一次被调用,但它会将“ Edit”与“ Edit”进行比较,结果为false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.