我有一些javascript代码,它会创建一个对话框,看起来像这样:
$( function () {
$('.hoverList').dialog({
autoOpen: false,
hide: {
effect: "fade",
duration: 400
},
title: $(this).data("title"),
modal: false
});};
在这种情况下,页面上可能有多个hoverlist类元素。我遇到的问题是上面的这一行:
title: $(this).data("title")
在我的pag上,包含我的对话框的div看起来像这样:
<div class='hoverlist' data-title='My Dialog Title'>...</div>
当javascript运行时,$(this)在对话框的'title:'键中返回引用文档本身,而不是该对话框指令所适用的元素,因此数据(“title”)的此处无法访问<div>
元素。
请注意,同一页面上可能有几个hoverlists,所以我不能只通过id而不是类选择它而不重复重新创建相同的代码。试图弄清楚我如何使用<div>
的数据元素中引用的标题构建对话框,我将其转换为对话框。怎么可能这样呢?
答案 0 :(得分:1)
如果你想这样做,那么你需要遍历jQuery选择器对象,这样'$(this)'指的是当前节点。
$( function () {
$('.hoverList').each(function(){
$(this).dialog({
autoOpen: false,
hide: {
effect: "fade",
duration: 400
},
title: $(this).data("title"),
modal: false
});
});
});