2011-01-25 29 views
0

我正在開發一個簡單的RSS聚合器站點,它基本上解析了一堆RSS提要並將它們顯示在一系列框中。我正在使用RSS插件ZRSSFEEDJquery不會在插件生成html標籤上工作

您可以在這裏看到的一張現場版:http://vitaminjdesign.com/adrian

我正在使用jQuery選擇DOM遇到的問題對象由插件生成。更具體地講,我想,以顯示社會旁的圖標,當鼠標懸停使用下面的jQuery的頁面上的任何鏈接的錨鏈接:

$(document).ready(function(){ 

     $('a').hover(function(){ 
      $('<a href="#"><img src="images/facebook.gif" class="facebook" alt="facebook"></a>').appendTo(this).fadeIn(500); 
      $('<a href="#"><img src="images/twitter.gif" class="twitter" alt="twitter"></a>').appendTo(this).fadeIn(500); 

     }, function(){ 
      $('a').find('.facebook,.twitter').stop().fadeOut(500); 
     }); 
    }); 

出於某種原因,這個jQuery不會與錨工作在頁面上。該插件使用位於此腳本上方的jQuery腳本在我的HTML文檔中生成一個標記。我似乎無法弄清楚爲什麼這不工作!我已經嘗試過各種jquery片段,可以在頁面的其他元素上工作,但插件生成的內容似乎沒有受到任何jQuery的影響。幫幫我!

+0

你可以看到它的工作,如果你將鼠標懸停在徽標鏈接,但鏈接 – JCHASE11 2011-01-25 17:02:57

回答

2

這不起作用,因爲頁面第一次呈現後DOM發生了變化,所以您需要使用live()方法。它允許生成的元素仍然被已有的JQuery函數作爲目標。 http://api.jquery.com/live/

+0

+1不休息。 `活()`是絕對的修復 – 2011-01-25 17:02:18

0

您應該使用live()delegate()方法將事件綁定到在初始渲染後添加到DOM的元素。

0

如果您只需要提要的鏈接附加事件,則還可以使用zRSSFeed的回調函數在提要加載後應用它們。

例如:

$(document).ready(function() { 
    $('#test').rssfeed('http://feeds.bbc.co.uk/iplayer/highlights/tv/list',{}, function(e) { 

     $(e).find('div.rssBody a').hover(function() { 
      $('<a href="#"><img src="images/facebook.gif" class="facebook" alt="facebook"></a>').appendTo(this).fadeIn(500); 
      $('<a href="#"><img src="images/twitter.gif" class="twitter" alt="twitter"></a>').appendTo(this).fadeIn(500); 

     }, function(){ 
      $('a').find('.facebook,.twitter').stop().fadeOut(500); 
     }); 

    }); 
});