1

我写了一个简单的弹出插件,可以简单地弹出一个 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) 似乎不起作用并返回“未定义”的问题我如何访问 pollId 属性插件选项?

4

1 回答 1

0

您拥有的this可能是全局对象,或者如果您在事件处理程序中,则处理程序绑定的对象。无论如何,要获得正确的上下文,您可以使用 each 函数根据特定的li.

$("#pollList li").each(function(){
  $(this).popup({
    width:800,
    height:400,
    popupType:'ajax',
    ajaxURL:root+'polls/attend/poll/'+$(this).attr('pollId')
  }); 
});

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

于 2013-07-07T19:45:23.570 回答