在选项中访问当前选定的元素

时间:2013-07-07 19:41:52

标签: jquery plugins selector this

我写了一个简单的弹出式插件,简单地弹出一个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插件选项中的属性为?

1 个答案:

答案 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')
  }); 
});

此外,您可能希望使用数据属性而不是任意数据属性。