2010-12-11 10 views
1

AJAXリクエストの後に実行される関数でjQuery qtipプラグインを使用しようとしました。プラグインはアクセスできない、私は他の方法で問題を管理している(qtipコンテンツの引数にajaxをロードする)が、私はまだ問題が何か不思議です。JQuery ajax関数でjQueryプラグインを使用する際のスコープの問題

<script type="text/javascript" src="jquery.qtip-1.0.0.min.js"></script> 
//load plugin 
<script type="text/javascript">  
(function ($) { 
    jQuery("div.joomimg24_imgct").each(function() { 
     jQuery(this).find(".joomimg24_txt").hide(); 
     var textField = jQuery(this).find(".joomimg24_txt ul li"); 
     var title = textField.get(0).innerHTML; 
     var dataDodania = textField.get(2).innerHTML.split(':')[1]; 
     var author = textField.get(1).innerHTML.split(':')[1]; 
     var commnetsC = textField.get(3).innerHTML.split(':')[1]; 
     var link = jQuery(this).find("a").attr('href'); 
     var idNumber = getUrlValue('id', link); 
     jQuery.ajax({ 
      url: "ajax/getvote.php", 
      cache: false, 
      data: "photoid=" + idNumber, 
      success: function (html) { 
       ajaxFunc(jQuery(this), html, title, author, commnetsC, 
           dataDodania); 
      }, 
      error: function (err, ans) { 
       alert("error : " + err + " kod : " + ans); 
      } 
     }); 
    }) 
    function getUrlValue(name, link) { 
     [...] 
     return decodeURIComponent(results[1].replace(/\+/g, " ")); 
    } 
    function ajaxFunc(curObj, rating, title, author, commnetsC, data) { 
     if (!jQuery.qtip) { 
      alert("jQuery plugin not loaded"); 
      return; 
     } 
     var newText = "</div>...<div>" 
     //qtip is not loaded! 
     curObj.qtip({ 
      content: newText, 
      show: 'mouseover', 
      hide: { 
       when: 'mouseout', 
       fixed: true 
      }, 
      position: { 
       target: 'mouse', 
       adjust: { 
        mouse: true 
       } 
      }, 
      style: { 
       height: 'auto', 
       width: 'auto', 
       padding: 1, 
       marginRight: 0, 
       //20 , aby wyrownac 
       background: 'url(/templates/upsilum/images/bg-slide.jpg)', 
       color: 'white', 
       border: { 
        width: 2, 
        radius: 3, 
        color: 'white' 
       } 
      } 
     }) 
     return curObj; 
    } 
})(jQuery); 
</script> 
+0

あなたは直面している問題を説明できますか? – casablanca

+0

私はjQuery.qtipプラグインを(function($)[...]、Query.ajax({... success:function(html){(ajaxFunc()[...] ...)にラップしました。 とjQuery.qtip関数が機能しない – Damian

+0

同じ問題が発生していますが、これを差し引いて解決策を見つけられませんでした。 – ZolaKt

答えて

1

このような何か試してみてください:完全にあなたがやっていることのまわりで私の頭をラップすることなく

jQuery.ajax({ 
     url: "ajax/getvote.php", 
     cache: false, 
     data: "photoid=" + idNumber, 
     success: function(obj, h, t, a, c, d) { 
        return function (html) { 
        ajaxFunc(obj, h, t, a, c, d);} 
      } (jQuery(this), html, title, author, commnetsC), 
     error: function (err, ans) { 
      alert("error : " + err + " kod : " + ans); 
     } 
    }); 

を、私はあなたがHTML、タイトル、著者などを期待していると仮定しています...非同期呼び出しが返ったときにスコープに入る変数、実際にはそうでない場合の変数

これは正確にはテストされていないため、構文的に正しいとは言えません。

編集:私はそれが最初にやるべきことをやっていないかもしれませんが、少なくとも、あなたが望むときに範囲内の変数を取得する方法の出発点を与えることができます。