我正在使用名为webuiPopover的jQuery插件。它为链接添加了一个popover。当用户悬停链接时,弹出窗口的内容将通过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'。
不幸的是,这段小代码总是返回'undefined'。
如果我在$(this).attr("data-id")
参数中使用相同的代码(content
)(以提供function (data) {return $(this).attr("data-id");}
,则可以正常使用。
出了什么问题?
答案 0 :(得分:3)
this
指的是document
回调中的$(document).ready
。它适用于content
回调,因为插件在content
调用它时是binding的元素。
如果你想为每个popover分别设置一个url,你必须为每个元素单独绑定popover插件:
$(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;}
});
});
});