2011-06-27 13 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でone-upを起動するためだが、いずれにせよ、それがなければ動作しない。ファンシーボックスが起動しないのはなぜですか?

提案がありますか?

答えて

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

関連する問題