Jquery boxy每次创建具有相同id的boxy

时间:2011-11-23 08:38:19

标签: jquery jquery-plugins boxy

我在我的Rails应用程序中使用Jquery Boxy。

我用过

function rateboxy(id){
    var box = new Boxy(jQuery('#rate_'+id),{
    title: "Rate",
    draggable: false,
    closeable: true,
    center: true,
    modal: true
    });
    return false;
  }

我有一个div

<div id="rate_<%= blog.id%>" style="display:none">
....
<div>

每次点击链接

<%= link_to "Rate","#",:onclick=>"rateboxy('#{blog.id}');" %>

它打开了一个四四方方式。我在boxy里面有一些更新函数,它将使用响应更新div中的html。

但是当我多次点击链接时。每次它创建一个具有相同id的新四四方方,所以它不会更新旧的打开的四四方方,我在firebug中发现。 如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

现在,每次在ratesboxy()函数中单击链接时,您都会创建一个新的Boxy元素。

将div声明移到函数之外:

var box = new Boxy(jQuery('#rate_'+id),{
    title: "Rate",
    draggable: false,
    closeable: true,
    center: true,
    modal: true
    });

然后让您的链接切换现有div的可见性。不确定rails,但在jQuery中这将是:

function rateboxy(id){    
 jQuery("#"+id).toggle();
}