jQuery 函数参数中的 attr(...) 未定义
jQuery's attr(...) in function parameter is undefined
我正在使用一个名为 webuiPopover 的 jQuery 插件。它向 links 添加了一个弹出窗口。当用户将鼠标悬停在 link 上时,弹出窗口的内容将通过 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'。
不幸的是,那段代码总是 returns 'undefined'.
如果我在 content
参数中使用相同的一段代码 ($(this).attr("data-id")
)(给 function (data) {return $(this).attr("data-id");}
它工作正常。
怎么了?
this
指的是$(document).ready
回调里面的document
。它在 content
回调中工作,因为插件在调用它时是 binding 到 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;}
});
});
});
我正在使用一个名为 webuiPopover 的 jQuery 插件。它向 links 添加了一个弹出窗口。当用户将鼠标悬停在 link 上时,弹出窗口的内容将通过 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'。
不幸的是,那段代码总是 returns 'undefined'.
如果我在 content
参数中使用相同的一段代码 ($(this).attr("data-id")
)(给 function (data) {return $(this).attr("data-id");}
它工作正常。
怎么了?
this
指的是$(document).ready
回调里面的document
。它在 content
回调中工作,因为插件在调用它时是 binding 到 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;}
});
});
});