Для моего сайта рельсы, когда кто-то пытается удалить элемент, я хочу, чтобы выскочить пользовательский DIV (в противоположность окне предупреждения JavaScript) с запросом на подтверждение, прежде чем делать это.Rails & прототип - вставить DIV и поместите его
На данный момент, так что я делаю это, то, что нажав на ссылку Удалить вызовет функцию (в application_helper.rb
), как показано ниже:
def show_delete_box(object, name)
update_page do |page|
page.insert_html :before, "content", render(:partial => "shared/generic_delete_box", :locals => { :object => object, :name => name })
page << "$('delete_box').Center"
end
end
Визуализированное парциальное предназначена появиться в на середине экрана, а местные - это то, что будет использовано для создания соответствующей ссылки удаления в div.
Однако моя проблема здесь пытается сделать вид, в середине экрана. Я всегда сильно страдал от javascript, и это тоже сбивает меня с ума. (Я, я пытался использовать поджигатель, как хорошо, но эти длинные строки JavaScript не значат для меня.>. <)
2-я строка в моем update_page
блоке предназначена для вызова яваскрипта функции, которая центр вставленной дела.
Функция, которую я написал и застрял в моем application.js
файл выглядит следующим образом:
Element.Center = function(element) {
var vH, vW, eH, eW;
var d = Element.getDimensions(element);
eH = d.height;
eW = d.width;
vH = document.viewport.getHeight();
vW = document.viewport.getWidth();
var y = (vH/2) - (eH/2) + "px";
var x = (vW/2) - (eW/2) + "px";
var style = { position: 'absolute'; top: y + 'px'; left: x + 'px'};
element.setStyle(style);
}
Что происходит, когда я нажимаю, является то, что парциальное DIV создается и вставляется в страницу в соответствующей место. Тем не менее, я не могу это сделать. Итак, я ищу помощь! Что я делаю неправильно в функции javascript или пытаюсь вызвать функцию?
Заранее спасибо!
--edit-- Я не уверен, что это поможет ... Это соответствующий код CSS для delete_box
.
#delete_box {
background-color: green;
border: 5px solid #999;
padding: 15px;
width: 600px;
}
Таким образом, CSS никоим образом не касается позиционирования.
Почему не поставить позиционирование в CSS (с использованием позиции: фиксированная, например)? –
'delete_box' должен появиться в середине страницы, так что мне не нужно будет рассчитать размеры окна просмотра, а затем поместить соответственно атрибуты' top' и 'left' в div? Я не думал, что такой расчет можно было бы сделать в таблицах стилей. –