2011-11-16 28 views
0

我試圖重新將類應用到通過ajax加載的新內容。重新將類應用到ajax加載的內容

HTML:

<a href="#" id="link_1">link_1</a> 
<a href="#" id="link_2">link_2</a> 
<a href="#" id="link_3">link_3</a> 
    <a href="#" id="ajax-load">load more</a> 

<ul id="list"> 
    <li class="li-one">one content</li> 
    <li class="li-two">two content</li> 
    <li class="li-three">three content</li> 
</ul> 

jQuery腳本:

$(document).ready(function() { 
      $('#link_1').live('click', function() { 
       $('.li-one').addClass('hide'); 
      }); 
      $('#link_2').live('click', function() { 
       $('.li-two').addClass('hide'); 
      }); 
      $('#link_3').live('click', function() { 
       $('.li-three').addClass('hide'); 
      }); 
      $('#load-ajax').click(function() { 
       $.get('http://link', function(data) { 
       $('#list').append(data); 
     }); 
    }); 
}); 

Ajax的HTML頁面代碼:

<li class="li-one">one content</li> 
<li class="li-two">two content</li> 
<li class="li-three">three content</li> 

TODO:

用戶點擊link_1 - >'li-one'得到'hidden'class - >用戶點擊ajax - > ajax加載但是所有'li-one'用'hidden'class

用戶點擊link_2 - >'li-two'get 'hidden'class - >用戶點擊ajax - > ajax加載但是所有'li-two'用'hidden'class

用戶點擊link_3 - >'li-three'get'hidden'class - > user click ajax - >阿賈克斯負載但所有'三三''隱藏'類

它應該像過濾器一樣工作。

+1

然後你的ajax在哪裏? –

+0

如果你只是想添加類,那麼你不需要Ajax。 –

+0

只需添加行$('。li-one')。addClass('hide');在你的ajax調用之後。我不認爲有辦法'提前告訴'。或者你可以創建一個默認的回調,你堅持每個Ajax回調。我有點擔心看到沒有AJAX,雖然 – Jerome

回答

0

對我來說,似乎每次你加載的內容中有類li-one你不想顯示它?

爲什麼不改變默認隱藏的li-one的風格,那麼只有在需要時才顯示它?

0

是,

將回調當數據被加載並添加到文件,並再次呼籲:$(」 。李酮隱藏') ')addClass(';

但是,讓我優化代碼:

function startList() { 
    $('ul#list li').live('click', function() { 
     $(this).addClass('hide'); 
    }); 
} 

$(document).ready(function() { 
    startList() 
}); 

當加載數據時,你可以調用startList()做就可以了新的數據的工作。