2013-08-29 3 views
0

Это код, я работаю с: http://jsfiddle.net/qKyNL/12/E предотвратить по умолчанию не работает

$('a').click(function(){ 
    event.preventDefault(); 
    var number = $(this).attr('href'); 
    alert(number); 
    // AJAX 
    $.ajax({ 
     url: "/ajax_json_echo/", 
     type: "GET", 
     dataType: "json", 
     timeout: 5000, 
     beforeSend: function() { 
      // Fadeout the existing content 
      $('#content').fadeTo(500, 0.5); 
     }, 
     success: function (data, textStatus) { 
      // TO DO: Load in new content 
      // Scroll to top 
      $('html, body').animate({ 
       scrollTop: '0px' 
      }, 300); 
      // TO DO: Change URL 
      // TO DO: Set number as active class 
     }, 
     error: function (x, t, m) { 
      if (t === "timeout") { 
       alert("Request timeout"); 
      } else { 
       alert('Request error'); 
      } 
     }, 
     complete: function() { 
      // Fade in content 
      $('#content').fadeTo(500, 1); 
     } 
    });  
}); 

Я пытаюсь создать разлагающийся пагинацию, используя Jquery, но проблема в том, что «е предотвратить дефолт» не похоже, срабатывает, и вместо этого он по-прежнему следует за ссылкой. Может ли кто-нибудь, пожалуйста, показать мне, как я могу отключить эту ссылку, поэтому, если Jquery отключен, она все еще работает.

ответ

2

Вы не проходите мимо объекта события. Попробуйте это:

$('a').click(function(event){ // <-- notice 'event' passed to handler 
event.preventDefault(); 
+0

Нравится? http://jsfiddle.net/qKyNL/14/ Все еще не работает :( – Jimmy

+1

Если вы загружаете jQuery, он работает лучше :-) http://jsfiddle.net/qKyNL/16/ –

0

Должно быть

$('a').click(function(event){

на первой линии. Обратите внимание, что event передается в качестве аргумента анонимной функции.

0

No event Передача данных.

Попробуйте

 $('a').click(function(event){ 
------------------------------^ 

      event.preventDefault(); 
    } 
0

Как и другие ответы сказали, что вам нужно передать переменную события обратного вызова

$('a').click(function(event) { 
    event.preventDefault(); 
}); 

Вы также должны обернуть весь код в к готовому функции JQuery так что прослушиватели событий назначаются только тогда, когда jQuery готов к их обработке.

$(document).ready(function() { 
    $('a').click(function(event) { 
     event.preventDefault(); 

     // the rest of your code 
    }); 
}); 
+0

Оказывается, это необязательно. Но я нахожу это хорошей практикой. Каждый из них – JConstantine

Смежные вопросы