0

このプラグインを使用してさらにHoverCardを作成する方法についてサポートが必要です(ダウンロード)。JSFiddleでコードデモを作成しました。これについて何かアドバイスはありますか?

JavaScript:

$('.babe-hover').hovercard({ 
    detailsHTML: $(this).attr('data-control').html(),
    width:278 
}); 

HTML:

 <ul class="demo">
<li>
    <a href="#"><span class="babe-hover" data-control="control-01">William Johnson</span></a>
    <div id="control-01" style="display: none;">
        <p class="s-desc">Address: 64 Newman Street.</p>
        <ul class="s-stats">
            <li>Tweets<br><span class="s-count">1337</span></li>     
        </ul>
    </div>
</li>
<li>
    <a href="#"><span class="babe-hover" data-control="control-02">Hanson Thomas</span></a>
    <div id="control-02" style="display: none;">
        <p class="s-desc">Address: 64 Newman Street.</p>
        <ul class="s-stats">
            <li>Tweets<br><span class="s-count">1337</span></li>     
        </ul>
    </div>
</li>

</ p>

4

2 に答える 2

2

現在、著者の助けを借りて動作しています

$('.babe-hover').each(function(){    
var $this = $(this),
    myControlId = $this.attr('data-control'),
    htmlForHovercard = $('#'+ myControlId).html();

$this.hovercard({ 
    detailsHTML: htmlForHovercard,
    width:278 
}); 
});

とにかく、提案してくれた@egasimusに感謝します:)

于 2012-06-24T09:02:33.240 に答える
1

私はあなたが尋ねていると思います: なぜこれはうまくいかないのですか?

何を返すかで.html()メソッドを呼び出そうとしています。ただし、文字列のみを返すため、使用するには対応する要素を取得する必要があります。次のコードは私にとってはうまくいきます:$(this).attr('data-control')$(this).attr('data-control').html()

$("#" + $(this).attr('data-control')).html()

つまり、「id がこの要素の data-control 属性と等しい要素を選択し、それに対して .html() を呼び出します」。

于 2012-06-22T22:53:04.543 に答える