我尝试使用data属性将参数传递给Jquery函数。
我做错了什么?
<ul class="flexisel" data-visible-items="2">
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
我认为这是传递参数的正确方法。但它不起作用。
$(".flexisel").flexisel({
clone: true,
visibleItems: $(this).attr("data-visible-items") //This doesn't work
});
此示例完美无缺:
$(".flexisel").each(function () {
//works
console.log("here", $(this).attr("data-visible-items"));
});
答案 0 :(得分:1)
在您的第一个JavaScript代码段this
中未将该集合称为对象文字({}
),请勿创建新范围。在您的第二个片段this
中引用迭代的当前元素,因为jQuery使用当前迭代元素绑定处理程序的this
值,因此您可以编写代码:
$(".flexisel").each(function() {
$(this).flexisel({
clone: true,
visibleItems: $(this).data("visible-items")
});
});