CakePHP, pagination, jQuery i zakładki (tabs)

Jakoś tak wyszło, że więcej bawię się ostatnio jQuery. Pojawił się kolejny problem:
przerobić Pagination cake’a na taki, żeby działał po ajaxie w zakładkach jQuery (jquery.ui.tabs):

Z pomocą przyszedł chankov.net z takim oto skryptem:

$('a[href*=/sort:],a[href*=/page:]').livequery('click', function(){
    $('#content').load($(this).attr('href'));
    return false;
});

Niestety nie ma chyba kontroli nad tym jakie id jquery.ui nada div’om, które są zawartością dla danej zakładki. Jednak i na to jest sposób (dzięki pluginowi livequery), nalezy zamiast

$('#content').load($(this).attr('href'));

Użyć nieco bardziej skomplikowanego selektora. Zakładając, że #content to div przechowujący zakładki (wywołałeś jQuery(“#content”).tabs()), to nalezy zmienić powyższą linię na

jQuery('#contents>div:visible').load(jQuery(this).attr('href'));

Dzięki selektorowi ‘#contents>div:visible’ znajdziesz w elemencie o id #contents pierwszego div’a (>div), który jest widzialny (:visible), a to właśnie jest element, którego zawartość należy uaktualnić nowymi danymi…

Share Button

Leave a Reply

Your email address will not be published. Required fields are marked *