0

ツールチップの作業バージョンがあります (jQuery Tools - http://flowplayer.org/tools/demos/tooltip/index.html ) 、

jQuery(document).ready(function() { 
jQuery('.more_info').each(function(){
   jQuery(this).tooltip({ 
       effect: 'slide',
       offset: [10, 570],
       predelay: 100, 
       position: "bottom left"}).dynamic( { 
        bottom: { 
        direction: 'down', 
        bounce: true 
    } 
    }); 
});   

});

ajax がロードされた後、スクリプトが既にロードされているため、ツールチップが機能しなくなりました 。

ここにコードがあります:

jQuery(document).ready(function() { 
jQuery('.more_info').each(function(){
   jQuery(this).not('.tt_init').tooltip({ 
       effect: 'slide',
       offset: [10, 570],
       predelay: 100, 
       position: "bottom left"}).dynamic( { 
        bottom: { 
        direction: 'down', 
        bounce: true 
        } 
    });
    jQuery(this).not('.tt_init').addClass('tt_init'); 
});   

});

そして何も...私は何か間違ったことをしています、助けてくれてありがとう;)、私の悪い英語でごめんなさい

4

2 に答える 2

2

問題が動的コンテンツである場合は、livejQuery API を使用してみてください。

jQuery('.more_info').live('mouseover', function(){
    // may need to check here if it already has a tooltip (depending on plugin)
    jQuery(this).tooltip({ 
       effect: 'slide',
       offset: [10, 570],
       predelay: 100, 
       position: "bottom left"}).dynamic( { 
           bottom: { 
           direction: 'down', 
           bounce: true 
       } 
  }); 
});

もう 1 つの解決策は、ajax コンテンツのツールチップを手動で有効にすることです。何かのようなもの:

$('#result').load('ajax/test.html', function() {
  $(this).find('.more_info').tooltip({*/...*/});
});

または、グローバル レスポンダーを使用して、すべての ajax リクエストに対してこれを行うこともできます。

于 2011-01-13T16:11:04.290 に答える
2

次と同じ解決策:

グループでライブクエリが機能しない

livequery プラグインを使用します。ツールチップがすべてのページに当てはまる場合は、毎回更新する必要があります。これは livequery が入ってきた場合です。

このリンクもチェックしてください:

ajaxコールバック後のJQueryスリムボックスの再バインド

于 2011-01-13T16:11:33.777 に答える