使用jQuery Hovercard和自定义数据属性创建Hovercard

时间:2012-06-22 12:47:22

标签: jquery-plugins hover jquery-hover

我需要一些关于使用this plugindownload)创建更多HoverCards的帮助。我刚刚在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>

2 个答案:

答案 0 :(得分:2)

现在它在the author

的帮助下工作了
$('.babe-hover').each(function(){    
var $this = $(this),
    myControlId = $this.attr('data-control'),
    htmlForHovercard = $('#'+ myControlId).html();

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

无论如何,谢谢@egasimus建议:)

答案 1 :(得分:1)

我想你在问:为什么这不起作用?

您尝试在.html()返回的内容上调用$(this).attr('data-control')方法。但是,$(this).attr('data-control')只返回一个字符串,您需要获取相应的元素才能使用.html()。以下代码适用于我:

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

即,“选择id等于该元素的数据控制属性的元素,并在其上调用.html()。”