2009-09-10 59 views
3

以下是jQuery的示例:如何獲取選項卡面板內的鏈接以在該面板中加載。jquery製表符加載事件

$(function(){ 
    $('#example').tabs({ 
     load: function(event, ui) { 
      $('a', ui.panel).click(function() { 
       $(ui.panel).load(this.href); 
       return false; 
      }); 
     } 
    }); 
}); 

然而,等你以後加載一個環節,其餘都正常行$(ui.panel).load(this.href);將不會觸發標籤加載事件

我想問的原因是因爲我有我的標籤裏面嵌套的手風琴,我想通過serverside分頁來分頁,但是當我使用頁面鏈接時,它不會重製手風琴。

我想是這樣的

$(function(){ 
    $('#example').tabs({ 
     load: function(event, ui) { 
      $(".products", ui.panel).accordion(); 
      $(".product_link", ui.panel).colorbox(); 

      $('a', ui.panel).click(function() { 
       $(ui.panel).load(this.href); 
       return false; 
      }); 
     } 
    }); 
}); 

這似乎讓我幾乎沒有,但是$(ui.panel).load(this.href)只加載到第一面板無論我在上

$(function(){ 
    $('#example').tabs({ 
     load: function(event, ui) { 
      $(".products", ui.panel).accordion(); 
      $(".product_link", ui.panel).colorbox(); 

      $('a', ui.panel).live('click',function() { 
       $(ui.panel).load(this.href,function(){ 
          $(".products").accordion(); 
          $(".product_link").colorbox(); 
         }); 
       return false; 
      }); 
     } 
    }); 
}) 

任何想法是什麼片?

回答

1

嘗試了這一點:

$(function(){ 
    $('#example').tabs({ 
     load: function(event, ui) { 
      $('a', ui.panel).live("click", function() { 
       $(ui.panel).load(this.href); 
       return false; 
      }); 
     } 
    }); 
}); 

如果我讓你正確,你刷新使用$.load你束縛自己的點擊處理程序的鏈接內容不再做後,他們應該。這是因爲您要通過ajax調用來替換所有這些鏈接,因此在您單擊一個鏈接後,所有這些鏈接都將被替換,並且不再具有事件處理程序綁定。

jQuery.live通過自動將事件處理程序重新附加到與選擇器匹配的新注入元素,防止它們丟失其綁定的事件處理程序。請參閱:

http://docs.jquery.com/Events/live

編輯:嘗試重新連接$.load的回調中的手風琴:

$(function(){ 
    $('#example').tabs({ 
     load: function(event, ui) { 
      $(".products", ui.panel).accordion(); 
      $(".product_link", ui.panel).colorbox(); 

      $('a', ui.panel).live("click", function() { 
       $(ui.panel).load(this.href, function() { 
        $(".products", ui.panel).accordion(); 
        $(".product_link", ui.panel).colorbox(); 
       }); 
       return false; 
      }); 
     } 
    }); 
}); 
+0

我知道內情關於現場活動,但鏈接不是我想修改的唯一的東西看我的編輯 – ErsatzRyan 2009-09-10 19:15:28

+0

@ErsatzRyan - 看我的編輯 – karim79 2009-09-10 19:26:39

+0

@ Karim79 - 你的編輯是關閉看我的編輯 – ErsatzRyan 2009-09-10 19:57:42

1

嘗試使用ui.tab.hash負載事件或選擇事件