2012-01-11 3 views
0

Hy all, который я пробовал в течение 2 дней, чтобы изменить этот скрипт, поэтому я могу называть его всякий раз, когда ссылка имела id = "paginations", конечно, безуспешно (просто потому, что я новичок).Изменить содержимое с помощью JQuery (Paginate)

Что именно я пытаюсь сделать, это вызвать эту функцию для загрузки и изменения #content, даже если ссылка находится внутри #content. Как это.

<div class="pagination"> 
    <a href="test.php">clik2</a> 
    </div> 

Я пытаюсь создать функцию и называть ее с помощью onClick, но я не увенчался успехом. Этот скрипт отлично работает, если ссылка находится за пределами #Content, но мне тоже нужно работать внутри #Content. Любые идеи, пожалуйста?

$ (документ) .ready (функция() {

var hash = window.location.hash.substr(1); 
var href = $('.pagination a').each(function(){ 
    var href = $(this).attr('href'); 
    if(hash==href.substr(0,href.length-5)){ 
     var toLoad = hash+'.html #content'; 
     $('#content').load(toLoad) 
    }           
}); 

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

      var toLoad = $(this).attr('href')+' #content'; 
      $('#content').hide('1000',loadContent); 
      $('#load').remove(); 
      $('#wrapper').append('<span id="load"></span>'); 
      $('#load').fadeIn('slow'); 
      window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5); 
       function loadContent() { 
        $('#content').load(toLoad,'',showNewContent()) 
       } 
       function showNewContent() { 
        $('#content').delay(100).show('fast',hideLoader()); 
        $(window).scrollTop(''); 
       } 
       function hideLoader() { 
        $('#load').delay(300).fadeOut('fast'); 
       } 
      return false; 
    }); 
}); 

ответ

1

Если ссылка добавляется с JavaScript, который я думаю, что вы пытаетесь сделать, то вам нужно использовать живую функцию. в настоящее время у вас есть

$('.pagination a').click(

Который должен быть заменен:

$('.pagination a').live('click',function() { 

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

+1

Обратите внимание, что метод .live устарел в jQuery 1.7. Вы должны использовать метод .on для делегирования делегирования, если у вас есть jQuery 1.7 или выше: http://api.jquery.com/on/ – alexp

+0

tnks много работает как шарм, надеюсь, что это поможет кому-то еще сжать это 1 amaizing script –