对话框没有显示

时间:2014-02-15 05:36:42

标签: javascript jquery ruby-on-rails dialog turbolinks

我以为我已经完成了所有操作,但是当我点击链接时,我在Rails应用程序中的对话框没有显示。

这是链接代码:

<li><%= link_to "Sign in", :class => "userlink" %></li>

这是我的对话:

<div id="loginf"  style="display:none;">
    <div class="col-md-3">
        <%= form_for(:session, url: sessions_path) do |f| %>

        <%= f.label :username %>
        <%= f.text_field :username %>

        <%= f.label :password %>
        <%= f.password_field :password %>

        <%= f.submit "Sign in", class: "btn" %>
        <% end %>

        <p>New user? <%= link_to "Sign up now!", signup_path %></p>
    </div>
</div>

这是我在assets/javascripts/dialog内存储的javascript:

$(document).ready(function(){

    $("a.userlink").click(function(e) {
        $("#loginf").dialog("open");
        e.preventDefault();
        return false;
    });

    $("#loginf").dialog({
        autoOpen: false,
        modal: true,
        resizable: false,
        draggable: false
    });
});

对我来说,一切似乎都很好。当我删除style="display:none;"时,div通常会显示并且看起来不错。此外,如果我在javascript点击功能中设置alert框,则通常会显示该警告框。

您怎么看?

2 个答案:

答案 0 :(得分:0)

你可以试试这个

$("#model").click(function(){
   $( "#dialog-modal" ).dialog({
     height: 140,
     modal: true
   });
});

DEMO

答案 1 :(得分:0)

我认为你应该从div中删除“display:none”样式,因为你已经使用了autoOpen:false选项。

有关详细信息,请参阅此链接:http://api.jqueryui.com/dialog/#option-autoOpen

autoOpenType: Boolean

Default: true
If set to true, the dialog will automatically open upon initialization. If false, the      dialog will stay hidden until the open() method is called.
Code examples:
Initialize the dialog with the autoOpen option specified:

$( ".selector" ).dialog({ autoOpen: false });
Get or set the autoOpen option, after initialization:

// getter
var autoOpen = $( ".selector" ).dialog( "option", "autoOpen" );

// setter
$( ".selector" ).dialog( "option", "autoOpen", false );