javascript - jquery click 事件交换文本在第一次点击时不触发但在之后工作

标签 javascript jquery html css click

我是 javascript 和 jquery 的新手,我有一小段代码可以将一段文本换成另一段完美工作的代码除了第一次单击 div 时。

有什么想法吗?我可能只是调用错误但不确定如何进行

这是一个 fiddle :http://jsfiddle.net/pauljackson/4r8v6/

js:

$(document).ready(function() {
    $("#showemail").click(function() {
        var $self = $(this);
        if ($self.text() == "Contact")
        $self.text("someguy@theinternet.com");
        else
        $self.text("Contact");
    });
});

html:

<div id="showemail">
Contact
</div>

CSS:

#showemail:hover {
cursor:pointer;
}

谢谢!

最佳答案

你的文本原来有一些空白, trim 它:

if ($self.text().trim() == "Contact")

它在第二次点击时起作用的原因是因为您的 else 条件将 text 设置为没有空格的“Contact” - 那么下次您点击时,您的条件评估为 true 一切正常

fiddle :http://jsfiddle.net/4r8v6/3/

关于javascript - jquery click 事件交换文本在第一次点击时不触发但在之后工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25045913/

相关文章:

javascript - HTML 表单中的元素在 Javascript 中未定义

javascript - 为什么 onload ="function"有效而 jquery.load 无效?

javascript - AJAX 是否需要请求 header ?

javascript - 仅使用浏览器按钮的 Onhashchange

javascript - jQuery/JavaScript trim 包含空格/空行的 HTML

javascript - 如何动态设置渲染函数的变量状态

javascript - 使用 Onclick 赋值的 For 循环中的闭包

javascript - 悬停离开动画

javascript - 通过 css 居中 msform

javascript - 在 Jquery 中如何引用由 document.createElement 创建的 javascript 元素