我正在使用fancybox,我想在fancybox执行之前获取元素类。所以我有:
$(".agent-file-popup").fancybox({
'onStart': function () {
console.log($(this).attr('class'));
console.log($(".agent-file-popup").attr('class'));
return true;
}
});
第一个日志输出“undefined”,但第二个日志输出正确的类。为什么我不能在这种情况下使用“this”作为元素?
答案 0 :(得分:3)
$(this)
是非常流行的构造之一,用于指示当前元素是焦点,可以在事件和选择器函数中使用。这与jQuery函数包含的JavaScript this
构造相同,以提供对jQuery函数的访问。
$(".user").click(function() {
//Here $(this) will represent the element that was click with class .user
});
插件通常是作为jQuery jQuery()
函数的扩展而开发的,它们几乎不负责检测当前元素。
因此,当您初始化插件时$(this)
可能很容易代表什么。
Fancybox有办法获取当前元素。
onstart: function(itemArray, selectedIndex, selectedOpts){
// selectedIndex holds the current selected box on itemArray as the collection object.
}
答案 1 :(得分:0)
试试这个:
$(".agent-file-popup").fancybox({
'onStart' : function() {
console.log($(this.element).attr('class'));
console.log($(".agent-file-popup").attr('data-paid'));
return true;
}
});