Атрибут jQuery (...) в параметре функции не определен
Я использую плагин jQuery под названием webuiPopover. Это добавляет поповер к ссылкам. Когда пользователь наводит на ссылку, содержимое всплывающего окна выбирается через 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;}
});
});
Как вы можете видеть, я вычисляю 'url', используя jQuery's attr(...)
функция. К сожалению, этот маленький кусочек кода всегда возвращает "неопределенный".
Если я использую тот же кусок кода ($(this).attr("data-id")
) в content
параметр (чтобы дать function (data) {return $(this).attr("data-id");}
это работает отлично.
Что не так?
1 ответ
this
относится к document
внутри обратного вызова $(document).ready
, Это работает внутри content
обратный вызов, потому что плагин привязывает элемент к content
когда это вызывает.
Если вы хотите иметь отдельный 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;}
});
});
});