2009-10-16 51 views
0

我對下面的問題難住了一點點,恐怕該解決方案是太明顯了,但我看不到它了。問題,怎麼來的,這jQuery代碼的工作原理:

$(document).ready(function() {  
    var q = $(".box").val();  
    $.get("db.php", {searchterm: "test", type: "search", time: "2pm" }, 
     function(twitter){ 
      var tweets = JSON.parse(twitter); 
     } 
    ); 

,但如果我讓一個click事件的一部分,那麼它將無法工作:

$(document).ready(function() {  
    $(".btn").click(function() {  
    var q = $(".box").val();  
    $.get("db.php", { searchterm: "test", type: "search", time: "2pm" }, 
     function(twitter){ 
      var tweets = JSON.parse(twitter); 
     } 
    ); 
}); 

當然,我的html頁面確實有使用類名稱「BTN」

螢火蟲按鈕閃爍內jQuery的錯誤信息,但重置控制檯馬上讓我無法讀取或從日誌複製錯誤。有什麼建議麼?

回答

3

也許你只需要return false;從單擊處理?

$(document).ready(function() { 
    $(".btn").click(function() { 
     var q = $(".box").val(); 
     $.get("db.php", { searchterm: "test", type: "search", time: "2pm" }, function(twitter){ var tweets = JSON.parse(twitter); }); 
     return false; 
    }); 
}); 

這將阻止鏈接的默認操作 - 即導航到URL。

+0

或使用'的preventDefault();' – 2009-10-16 15:34:25

+0

格雷格沒有注意到這個錯誤:) – 2009-10-16 15:43:05

+0

非常感謝提供的解決方案!我需要研究這個返回假概念:) – DrDee 2009-10-16 15:47:12

0

你是缺少一個右});

$(document).ready(function() {  
    $(".btn").click(function() {  
     var q = $(".box").val();  
     $.get("db.php", {searchterm: "test", type: "search", time: "2pm"}, function(twitter){ 
      var tweets = JSON.parse(twitter); 
     }); 
     return false; 
    }); 
}); 

返回假的也是一個不錯的選擇(@格雷格信用)。

0

@ cballou真實回答你的問題,但順便說一句,即使Firebug的推移閃爍了一個錯誤之後的空白,你可以通過打開Firefox的默認錯誤控制檯(按Ctrl + Shift + J工具>錯誤控制檯檢索錯誤)。

+0

很高興知道,謝謝。 – Tom 2009-10-16 15:57:27

+0

缺少}):是一個錯字,返回假固定的問題 – DrDee 2009-10-16 17:20:03

+0

是啊。 'return false;'防止事件被傳遞給該事件的默認處理程序 - 例如在錨鏈接上,默認操作是將頁面重定向到鏈接的URL。 – Premasagar 2009-10-16 20:03:13