对于我的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的痛苦,这也让我感到疯狂。 (雅,我也尝试过使用萤火虫,但那些长长的javascript对我来说毫无意义。&gt;。&lt;)
我的update_page
块中的第二行用于调用以插入的div为中心的javascript函数。
我编写并粘贴到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--
我不确定这是否有用......这是delete_box
的相关CSS代码。
#delete_box {
background-color: green;
border: 5px solid #999;
padding: 15px;
width: 600px;
}
因此CSS不会以任何方式触及定位。
答案 0 :(得分:0)
有几个预先烘烤的库可以帮助您完成您所说的内容,可能比自己编写更容易。例如,Redbox是一个可以在Prototype中运行的rails插件。