2010-06-21 83 views
0

我使用jQuery captify庫來添加一個簡單的「編輯個人資料照片」鏈接,當用戶懸停在他們的個人資料圖片。顯示爲標題的文本是我想要在fancybox模式窗口中顯示的鏈接。出於某種原因,captify會阻止鏈接被綁定到fancybox,並始終執行嘗試加載頁面的默認鏈接事件。這適用於頁面上的任何鏈接,我已經通過添加$('a')來測試。click(function(){return false;}); - 所以看起來captify在調用captify之後嘗試設置其他事件處理程序時會引發問題。任何人有任何想法可能會造成這種情況?或者,如果它可能與我正在使用的(j.1)版本的jquery不兼容(1.4.1)和captify ...jQuery captify衝突其他jQuery代碼

這是html結構,其中div#change_pic成爲覆蓋在圖像頂部的標題:

<div id = "avatar"> 
<img src="http://localhost/media/images/silhouette110x110.gif" alt="profile photo" class="captify" rel="change_pic" /> <div id="change_pic"> 
    <a href="http://localhost/image/manage" class="pic_manager">Change your photo</a> </div> 
    </div> 

的Javascript看起來是這樣的:

//jquery 1.4.1 already loaded 
<script type="text/javascript" src="http://localhost/media/js/fancybox/jquery.fancybox-1.3.1.pack.js"></script> 
<script type="text/javascript" src="http://localhost/media/js/fancybox_init.js"></script> 
<link rel="stylesheet" type="text/css" href="http://localhost/media/css/captify.css" /> 
<script type="text/javascript" src="http://localhost/media/js/captify.tiny.js"></script> 
    <script type = "text/javascript"> 
      $(document).ready(function(){ 

      $('img.captify').captify({ 
       // caption span % of the image 
       spanWidth: '90%' 
      }); 

      $("a.pic_manager").fancybox(); 
      }); 
     </script> 
+0

你看到在控制檯中的任何JavaScript錯誤?這似乎很可能來自你的症狀。 – 2010-06-21 23:57:29

+0

沒有錯誤,但我剛剛在Firefox上測試過,沒有任何問題。這個問題似乎在Chrome上......奇怪的 – franko75 2010-06-21 23:59:55

+0

NoScript或其他任何插件? – 2010-06-22 00:10:27

回答

1

問題似乎與使用刪除的(),而不是分離(),刪除預先安裝的DOM元素的所有事件。

我修改的代碼captify.js這些線路(訴1.1.3)

var captionLabelSrc = $('#' + $(this).attr('rel')); 
var captionLabelHTML = !captionLabelSrc.length ? $(this).attr('alt') : captionLabelSrc.html(); 
captionLabelSrc.remove(); 

var captionLabelSrc = $('#' + $(this).attr('rel')).detach(); 
var captionLabelHTML = !captionLabelSrc.length ? $(this).attr('alt') : captionLabelSrc; 
//captionLabelSrc.remove();