2009-11-13 2 views
1

У меня есть страница, которая отображает несколько блоков с результатами деталей. Внутри каждого блока у меня есть некоторые <a> теги с ThickBox плагин JQuery прилагается: class="thickbox"JQuery привязки на AJAX нагрузки() событие

Вот пример одного вида амперсант тега:

<a class="thickbox" title="Please Sign In" href="userloginredir.php?height=220&width=350&deal=3"> 

Проблема возникает, когда я добавил пагинацию Jquery на страницу из-за слишком много результатов отображается на странице. Компонент div с результатами внутри обновляется через событие ajax load().

Ниже нумерация страниц сценарий:

$(document).ready(function(){ 
    //References 
    var pages = $("#menu_deals li"); 
    var loading = $("#loading_deals"); 
    var content = $("#content_deals"); 

    //show loading bar 
    function showLoading(){ 
     loading 
      .css({visibility:"visible"}) 
      .css({opacity:"1"}) 
      .css({display:"block"}) 
     ; 
    } 
    //hide loading bar 
    function hideLoading(){ 
     loading.fadeTo(1000, 0); 
    }; 


    //Manage click events 
    pages.live('click',function(){ 
     //show the loading bar 
     showLoading(); 

     //Highlight current page number 
     pages.css({'background-color' : ''}); 
     $(this).css({'background-color' : 'yellow'}); 

     //Load content 
     var pageNum = this.id; 
     var targetUrl = "ajax_search_results.php?page=" + pageNum + "&" + $("#dealsForm").serialize() + " #content_d"; 
     content.load(targetUrl, hideLoading); 
    }); 

    //default - 1st page 
    $("#1").css({'background-color' : 'yellow'}); 
    var targetUrl = "ajax_search_results.php?page=1&" + $("#dealsForm").serialize() + " #content_d"; 
    showLoading(); 
    content.load(targetUrl, hideLoading); 
}); 

Когда я добавил пагинацию (код выше), ThickBox событие не признается больше, и вместо того, чтобы внезапные из окна с формой входа внутри он открывает результаты в новая страница (действует как нажав на обычную ссылку) Из моего знания Jquery это означает, что компоненты не определены в DOM, так как содержание обновляется после документа готов срабатывают.

Я пытаюсь связать событие нагрузки с чем-то вроде этого:

content.bind('load', ???); 

Но я не знаю, как передать Params нагрузки, targetUrl и функцию обратного вызова hideLoading, при связывании события нагрузки ,

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

+0

Не могли бы вы предоставить ссылку на свою страницу? Таким образом, я могу копировать и устранять неполадки. –

ответ

0
tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox 

называть это обратным вызовом ajax.

0

Вы использовали функцию hideLoading в качестве обратного вызова, вместо того, чтобы заменить его в этом, где вы intialise в ThickBox, а также скрыть загрузку.

content.load(targetURL, function(){ tb_init('a.thickbox'); hideLoading(); });