2016-11-16 6 views
1

Tooltipsterライブラリを使用してツールチップを生成し、単純なAJAX-custom-functionの例を基礎として使用しています。私はそれを修正する必要がありますが、静的な "http://example.com/ajax.php"を照会するのではなく、代わりに "http://example.com/ajax.php?id=contents_of_the_element_being_clicked"が表示されます。たとえば、HTMLに<span>textbook</span>がある場合、ポップアップのコンテンツリンクは "http://example.com/ajax.php?id=textbook"になります。要素の内容に基づいてTooltipsterでツールチップを生成

<span>でアクティブにする例を正常に再利用しましたが、できないことは、その<span>のinnerHTMLコンテンツをどのように持っていくかを理解することです。

私が探しているのは、後で$ .get ...関数(データ)リクエストに追加できる要素の内容を変数に取り込む行です。

答えて

1

html()関数を使用して、内側のhtmlを抽出することができます。さらに、param()を使用して、抽出されたhtmlをエンコードすることができます。

var param = "?" + $.param({ id: origin.html() });  

全例(Tooltipster 3.3.0jQuery 1.10での作業):

$('.tooltip').tooltipster({  
    functionBefore: function(origin, continueTooltip) { 
     var param = "?" + $.param({ id: origin.html() });  
     if (origin.data('loaded') !== true) { 
      $.get('example.com/ajax.php' + param, function(data) { 
       origin.data('loaded', true); 
       origin.tooltipster('content', data.id); 
       continueTooltip(); 
      });    
     } 
     else { 
      continueTooltip();   
     } 
    } 
}); 

Tooltipster Version 4

$('.tooltip').tooltipster({  
    content: 'Loading...', 
    functionBefore: function(instance, helper) { 
     var $origin = $(helper.origin); 
     var param = "?" + $.param({ id: $origin.html() });  
     if ($origin.data('loaded') !== true) { 
      $.get('example.com/ajax.php' + param, function(data) { 
       instance.content(data.id); 
       $origin.data('loaded', true); 
      });    
     } 
    } 
}); 

HTML:

<span class="tooltip" title="This is my span's tooltip message!">Some text test</span> 
+0

単なる例I GEをcopypasting t TypeError:origin.htmlは関数ではありません。 ( 'origin.html()'、 'origin.html'は未定義です) –

+0

これは 'span'の内容を含んでいます:ここでは' Some text test'です。この関数はTooltipsterの一部ではなく、jqueryライブラリに実装されています。 'param'にはクエリの' id'パラメータが含まれています。最後に、クエリURLを変更する必要があります。これは 'jsfiddle'の例です。 – ventiseis

+0

同じバージョンのTooltipsterを使用していますか?私は古いもの(3.3.0)を使用しました - それは4.0と異なります。ここでは、例をツールチップのホームページから変更する必要があります。 – ventiseis

関連する問題