JQuery Boxy создает Boxy с тем же идентификатором в каждый раз - PullRequest
1 голос
/ 23 ноября 2011

Я использую Jquery Boxy в моем приложении Rails.

Я использовал

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, которая обновит HTML внутри div своим ответом.

Но когда я нажимаю на ссылку много раз. Каждый раз он создает новый ящик с тем же идентификатором, поэтому он не обновляет старый открытый ящик, который я обнаружил в firebug Как решить эту проблему.

1 Ответ

0 голосов
/ 23 ноября 2011

Прямо сейчас вы создаете новый элемент Boxy каждый раз, когда по вашей ссылке нажимают в вашей функции rateboxy ().

Переместите объявление div вне функции:

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

А затем сделайте так, чтобы ваша ссылка просто переключала видимость существующего div. Не уверен, что для рельсов, но в jQuery это будет:

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