2011-06-27 114 views
0
<script type="text/javascript"> 
     jQuery(document).ready(function() { 
      jQuery('.excerpt_read-more').click(function(e) { 
       e.preventDefault(); 

       var url = jQuery(this).attr('href'); 

       jQuery.get(url, function(data) { 
        var content = jQuery(data).find('#the_content').text(); 

        jQuery(this).parent().fancybox({ 
         'content' : content 
        }); 
       }); 
      }); 
     }); 
     </script> 

這是我的代碼,一切工作正常,fancybox應該發射的部分。因爲通常它會在.excerpt_read-more上啓動一次,所以無法使用父級方法。fancybox爲什麼不觸發?

有什麼建議嗎?

回答

2

您有一個範圍/上下文問題。您不能在回調函數內重用this,因爲這是一個全新的上下文。嘗試將引用存儲到單獨的變量中,然後使用該變量。例如。

jQuery(document).ready(function() { 
     jQuery('.excerpt_read-more').click(function(e) { 
      e.preventDefault(); 

      var url = jQuery(this).attr('href'); 
      var $link = jQuery(this); // <-- see this 

      jQuery.get(url, function(data) { 
       var content = jQuery(data).find('#the_content').text(); 

       $link.parent().fancybox({ // <-- and use it here 
        'content' : content 
       }); 
      }); 
     }); 
    }); 
+0

謝謝。這解決了它。 – imHavoc

相關問題