2009-10-16 2 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); 
     } 
    ); 

но если я сделать его частью щелкни событие, то оно не будет работать:

$(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'

Firebug мигает сообщение об ошибке в 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();' –

+0

Грег предоставил решение, не заметив ошибку :) –

+0

Спасибо большое! Мне нужно изучить это возвращение ложной концепции :) – DrDee

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; 
    }); 
}); 

возвращение ложным также является хорошим выбором (кредит @Greg).

0

@ cballou ответил на ваш вопрос, но BTW, даже если Firebug гаснет после прошивки до ошибки, вы можете получить сообщение об ошибке при открытии Error Firefox по умолчанию консоли (Ctrl + Shift + J или Tools> Console Error).

+0

Полезно знать, спасибо. – Tom

+0

отсутствующий}): была опечатка, возврат false исправил проблему – DrDee

+0

Ах да. 'Return false; 'предотвращает передачу события обработчику по умолчанию для этого события. на привязке, действие по умолчанию будет перенаправлять страницу на связанный URL. – Premasagar