2

我正在使用一个名为webuiPopover的 jQuery 插件。它为链接添加了一个弹出框。当用户悬停链接时,弹出框的内容通过 AJAX 获取。这需要一定url的配合适当的参数。

所以这是代码:

$(document).ready(function() { 
    $(".qa-user-link").webuiPopover({
        placement:"auto",
        trigger:"hover",
        type:"async", 
        cache:false,
        url:"./qa-plugin/q2a-user-popover/qa-user-popover-details.php?handle="+$(this).attr("data-id")+"&incdir=%2Fhome%2Fpeatar5%2Fpublic_html%2Fbiophilie%2Fqa-include%2F",
        content:function(data) {return data;}
    });
});

如您所见,我使用 jQuery 的attr(...)函数计算了“url”。不幸的是,那一小段代码总是返回“未定义”。

如果我在参数中使用相同的代码($(this).attr("data-id")) (让它工作正常。contentfunction (data) {return $(this).attr("data-id");}

怎么了?

4

1 回答 1

3

this指的是document内部的回调$(document).ready。它在content回调中工作,因为插件在调用它时将元素绑定content到它。

如果您想为每个弹出框设置不同的 url,则必须为每个元素分别绑定弹出框插件:

$(document).ready(function() { 
    $(".qa-user-link").each( function ( ) {
        var $this = $(this);
        $this.webuiPopover({
            placement:"auto",
            trigger:"hover",
            type:"async", 
            cache:false,
            url:"./qa-plugin/q2a-user-popover/qa-user-popover-details.php?handle="+$this.attr("data-id")+"&incdir=%2Fhome%2Fpeatar5%2Fpublic_html%2Fbiophilie%2Fqa-include%2F",
            content:function(data) {return data;}
        });
    });
});
于 2015-01-17T20:00:17.760 回答