2010-01-29 67 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