我写了一个简单的弹出式插件,简单地弹出一个div和黑屏。它以两种方式工作。简单的消息和加载ajax。这是我的问题
我有这样的民意调查清单:
<div id="pollList" style=" margin-top:10px;">
<li pollId='1'><strong>polling number 1</strong></a><br /><span style='font-size:9px;'>this is a test polling</span></li>
<li pollId='2'><strong>polling number 2</strong></a><br /><span style='font-size:9px;'>this is a test polling</span></li>
现在我希望我的插件适用于所有这些li标签,所以我使用了这个:
$("#pollList li").popup({
width:800,
height:400,
popupType:'ajax',
ajaxURL:root+'polls/attend/poll/'+$(this).attr('pollId')
});
这里是问题我想将$(this).attr('pollId')传递到插件中以调用相关的URL,但$(this)似乎不起作用并返回'undefined'我怎样才能访问pollId插件选项中的属性为?
答案 0 :(得分:0)
您拥有的this
可能是全局对象,或者如果您在事件处理程序中绑定了处理程序的对象。无论如何要获得正确的上下文,您可以使用每个函数根据特定的li
设置URL。
$("#pollList li").each(function(){
$(this).popup({
width:800,
height:400,
popupType:'ajax',
ajaxURL:root+'polls/attend/poll/'+$(this).attr('pollId')
});
});
此外,您可能希望使用数据属性而不是任意数据属性。