Для моего сайта rails, когда кто-то пытается удалить элемент, я хочу открыть пользовательский div (в отличие от окна предупреждения javascript), запрашивающий подтверждение перед этим.
На данный момент, способ, которым я делаю это, заключается в том, что нажатие на ссылку удаления вызовет функцию (в 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, и это также сводит меня с ума. (Да, я тоже пытался использовать firebug, но эти длинные строки javascript для меня ничего не значат.>. <) </p>
2-я строка в моем блоке update_page
предназначена для вызова функции javascript, центр которой - вставленный div.
Функция, которую я написал и вставил в мой файл 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 никак не касается позиционирования.