2012-07-06 79 views
2

我首先實現了下面的代碼片段來顯示「hi」警報,並在「文檔準備就緒」時執行jQuery post。這第一步工作正常。然後我添加了幾行來執行塊,只需點擊一下標籤即可。 現在,「嗨」警報按預期工作(只有在我點擊鏈接後),然而帖子返回'錯誤,帖子不起作用'並且沒有按預期完成。重申一下,如果我刪除/ * /下面標記的兩行,代碼工作得很好(在頁面加載後立即)。任何想法爲什麼?jQuery post在加載時工作,但不在點擊

$(document).ready(function(){ 
    $('a.postlink').click(function() { /*** post works if I remove this line ***/ 
    alert("hi"); 
    jQuery.post("http://myurl", 
      {registration_id: 'device1', command: 'MESSAGE', message: 'Hello', longMessage: ''}, 
     function(data) { 
     alert("ok"); 
     }) 
     .error(function() { 
     alert("error, the post didn't work"); 
     }); 
    });         /*** and this line ***/ 
}); 
+1

您是否試過將'jQuery.post'修改爲'$ .post'? – 2012-07-06 19:20:05

+0

是的。以短格式開始,但後來使用完全限定的名稱來確保這不是問題。 – 2012-07-06 19:22:11

+0

空引號... – 2012-07-08 13:53:32

回答

2

嘗試event.preventDefault();

<a href="#" class="postlink"></a> 

$('a.postlink').click(function(event) { 
    event.preventDefault(); 
    // ... 
}) 
+0

就是這樣!想知道問題的原因是什麼,以及爲何解決這個問題。謝謝! – 2012-07-06 19:26:21

+0

@Sachin歡迎您,「如果調用此方法,則不會觸發'event'的默認操作。」你可以閱讀更多關於preventDefault here http://api.jquery.com/event.preventDefault/ – undefined 2012-07-06 19:29:49

+1

這也幫助了我!在我的情況下,我有一個輸入框旁邊的輸入按鈕。 jquery .click()在鍵盤上工作,但按鈕沒有正確執行。你讓我免於發佈一個問題! – bgmCoder 2016-08-24 21:21:44