2010-01-29 107 views
0

编辑:JQuery更改文本按钮单击“闪烁”文本

谢谢你们 - 完美!我希望我可以检查多个答案,因为你们都给了我正确的答案。快速响应!


我有以下的jQuery函数:

$(document).ready(function(){ 
     $('#login_btn').click(function(){ 
     $("#message").text("button was pushed"); 
    }); 
}); 

它的工作原理 - 的消息格中的文本更改,当我点击该按钮。但是它会在加载时立即恢复到它的状态。所以你真正看到的是一个快速闪光,然后它消失了。

我正在使用codeigniter。上面的脚本名为“login_attempt”,位于我的项目根目录下名为“javascript”的文件夹中。这是该文件中唯一的东西。以下是输出的html源代码。

<html> 
<head> 
    <script language="javascript" src="path to jquery-1.4.min.js"></script> 
    <script type="text/javascript" src="path to login_attempt.js"></script> 

    <title>Login Page</title> 
</head> 
<body> 
    <div id="message">this will become something else</div> 
     <button id="login_btn">Click Me</button> 
</html> 

我只是现在正在学习jQuery,但我认为当文本被改变时它应该保持改变。有人能告诉我如何确保改变仍然存在吗?

谢谢。

回答

1
$('#login_btn').click(function(){ 
    $("#message").text("button was pushed"); 
    return false; 
}); 

返回false以防止表单提交。

1

此按钮是否在表格中?如果是这样,我认为你点击按钮时提交表单,然后重新加载页面。它可能重新加载速度很快,看起来像闪光灯。

$(document).ready(function(){ 
    $('#login_btn').click(function(e){ 
     e.preventDefault(); 
     $("#message").text("button was pushed"); 
     return false; 
    }); 
}); 

添加返回false基本上会停止按钮通常会启动的事件链。

+2

'return false;'与调用'e.preventDefault();方法是一样的。 e.stopPropogation();' – munch 2010-01-29 05:49:24

+2

除了如果你的函数碰巧有任何错误,那么表单将被提交。将e.preventDefault()放在函数的开始位置可以防止(以我的经验)。 不是说你应该在你的函数中有任何错误,但这只是增加了一些保险。 – jessegavin 2010-01-29 05:51:00