Jquery 按需模式渲染?

Jquery 按需模式渲染?,jquery,ruby-on-rails,ruby-on-rails-3,Jquery,Ruby On Rails,Ruby On Rails 3,据我目前所知,jquery modals在页面加载期间呈现,并由用户通过hidden=true到hidden=false值触发 当modals保持在每页的最小值时,这一切都是很好的。但是,我的问题是,如果你有一个完整的情态动词列表,当你点击它时会弹出一个需要编辑的情态动词信息列表。例如,一个文档网格,您希望单击一个文档,并有一个模式弹出窗口来编辑小文档。在页面加载期间呈现所有这些文档不会降低用户体验。难道没有办法“按需”加载和呈现该模式吗 这种行为的标准做法是什么 我知道rails的方法是为每个

据我目前所知,jquery modals在页面加载期间呈现,并由用户通过hidden=true到hidden=false值触发

当modals保持在每页的最小值时,这一切都是很好的。但是,我的问题是,如果你有一个完整的情态动词列表,当你点击它时会弹出一个需要编辑的情态动词信息列表。例如,一个文档网格,您希望单击一个文档,并有一个模式弹出窗口来编辑小文档。在页面加载期间呈现所有这些文档不会降低用户体验。难道没有办法“按需”加载和呈现该模式吗

这种行为的标准做法是什么

我知道rails的方法是为每个文档加载一个新页面,但我很好奇如何才能做到这一点


我还标记了jQuery群组,因为这个库是我最熟悉的库。

我在应用程序中经常这样做。这是我的一个应用程序中反馈按钮的代码

它创建对话框,当按下按钮时,对话框的内容将动态加载

$(function () {
    var button= $("#FeedbackButton");
    if (button.length == 0)
        button= $("<div id='FeedbackButton'>Feedback</div>").hide().appendTo("body");


    var dialog = $("#FeedbackDialog");
    if (dialog.length == 0)
        dialog = $("<div id='FeedbackDialog'>Feedback</div>").hide().appendTo("body");

    button.click(function () {
        button.hide();
        dialog.load("_FeedbackDialog.htm");
        $(dialog).dialog({
            title: "Feedback",
            modal: true,
            width: 800,
            height: 300,
            close: function () {
                $(button).show();
            }
        });
    });
});
$(函数(){
变量按钮=$(“#反馈按钮”);
如果(button.length==0)
按钮=$(“反馈”).hide().appendTo(“正文”);
变量对话框=$(“#反馈对话框”);
如果(dialog.length==0)
dialog=$(“Feedback”).hide().appendTo(“body”);
按钮。单击(函数(){
按钮隐藏();
加载(“_FeedbackDialog.htm”);
$(对话框).dialog({
标题:“反馈”,
莫代尔:是的,
宽度:800,
身高:300,
关闭:函数(){
$(按钮).show();
}
});
});
});

通过按需呈现模式,我假设您的意思是响应AJAX查询。在这种情况下,是的,有一种按需构建模式的方法。您需要做的是设置一个事件监听器,对控制器进行AJAX调用

# my_view.html
/* inside JS event trigger */
$.get("/get_modal.js")
然后在控制器中响应AJAX调用

# my_controller.rb
def get_modal
  respond_to do |format|
    format.js # this will execute get_modal.js (or get_modal.js.erb)
  end
end
然而,您的“视图”将不是HTML,而是JS,它让您可以自由地做任何想做的事情

# get_modal.js
/* JS modal code */

有一个用户体验()堆栈交换站点。这可能是一个更好的问“标准实践”问题的地方。因为我在rails下工作,想要使用我想的标记技术。但我也会问,谢谢。我喜欢这个,但我有一个问题。你的视图代码在Reguard to the button中是什么样子的。单击代码,基本上你是如何将它绑定到你的视图的。或者是什么触发了它。哦,只需点击一下按钮。我删除了创建按钮的代码,因为它有点不相关(或者我是这么认为的)。我的脚本打算在任何页面上运行一次,并创建所有反馈功能,包括添加按钮。我再把它加进去。然而,由于这会加载到代码中,所以只会绑定到您喜欢的任何按钮。这不是特别的。好吧,你在动态创建按钮,你已经向我展示了它的可能性,我想我已经掌握了它的要点,可以在同一页面上使用多个按钮/链接。谢谢,我会在几分钟内接受答案,看看有没有人给我更多的选择。哈哈,没问题。如果有什么我没有提到的,请告诉我。我同意你的观点,也喜欢这种方法,但是你如何触发rails.html.erb中的$.get(“/xxxx”)?像对待任何.html文件一样对待.html.erb文件,并添加一个
标记,其中定义了
$(document).ready
。然后,这允许您初始化DOM元素上的事件侦听器。