0

私は次のようなリンクを持っています:

<div id="demo-testpack">
          <a href="#" class="user-not-loggedin">Demo Test Packages</a>
      </div>

このリンクをクリックすると、次のjQueryコードを呼び出しています:

$(function() {  
  $("#user-popup-login").dialog({ autoOpen: false }); 
  $( ".user-not-loggedin" )
    .click(function() {
    $( "#user-popup-login" ).dialog( "option", "width", 400 );
    $( "#user-popup-login" ).dialog( "option", "modal", true );
    $( "#user-popup-login" ).dialog( "open" );

    return false;
  });

この関数の後にポップアップが開き、いくつかのフィールドといくつかのリンクがポップアップに表示されます。ポップアップ内の 1 つのリンクは次のとおりです。

<div id="registern"><a href="#" class="register-btn">Register Now</a></div>

このリンクをクリックすると、次のコードを実行して、別のポップアップが開きます。このための jQuery コードは次のとおりです。

$(function() {  
    $("#create-user-form").dialog({ autoOpen: false }); 
    $( ".register-btn" )
        .click(function() {
        $( "#create-user-form" ).dialog( "option", "width", 560 );
        $( "#create-user-form" ).dialog( "option", "modal", true );
        $( "#create-user-form" ).dialog( "open" );

        return false;
    });

    $( ".get-start" )
        .click(function() {
        $( "#create-user-form" ).dialog( "option", "width", 560 );
        $( "#create-user-form" ).dialog( "option", "modal", true );
        $( "#create-user-form" ).dialog( "open" );

        return false;
    });         

    //This function is used to submit User Registration form
    $('#user_registration_form').live('submit', function() { 
         $('.register').attr('disabled', 'disabled');
         show_request('#registration_error');
            $.ajax({   
                type: $(this).attr('method'),
                url: $(this).attr('action'), 
                data:$(this).serialize(),
                dataType: 'json',
                success: function(response) { 
                    $('.register').removeAttr('disabled', 'disabled');
                    var reg_error = response.reg_error;    

                    if(reg_error=='yes') {
                        var error_msg      = response.error_msg; 
                        var dialog_title   = 'Input Errors Found';                 
                        var dialog_message = error_msg; 
                        $("#registration_error").html(error_msg);
                    } else {
                        $("#registration_error").html('');
                        $( "#create-user-form" ).dialog('close');
                        var suc_msg   = response.suc_msg; 
                        var dialog_title   = 'Registered Successfully';                 
                        var dialog_message = suc_msg; 

                        var $dialog = $("<div class='ui-state-success'></div>")
                        .html("<p class='ui-state-error-success'>"+dialog_message+"</p>")
                        .dialog({
                             autoOpen: false,
                             modal:true,
                             title: dialog_title,
                             width: 500,                       
                             buttons:{
                             'OK': function() {
                                $(this).dialog('close');
                                 }
                             }                                             
                        });
                        $dialog.dialog('open'); 
                        $('#user_registration_form')[0].reset();    
                    }

                } 
            });    
            return false;
    }); 
});

今私が達成したいのは、ユーザーが上記のリンクをクリックすると、以前に開いたポップアップが閉じ、この新しいポップアップのみが表示されることです。私はたくさんのトリックをしましたが、成功しませんでした。これを達成する方法について誰か助けてもらえますか?事前に感謝します。

4

2 に答える 2

0

私は試してみましたが、reacThis は次のコード スニペットで実現できます。それは本当に私にとって魔法でした。

if($( "#user-popup-login" ).dialog( "open" ))
        $( "#user-popup-login" ).dialog( "close" );
于 2013-05-29T16:26:36.567 に答える
0

クローズしようとしている場所とは異なる匿名関数でpopup('open')onを呼び出すため、これはスコープの問題であると推測します。$( "#create-user-form" )それを開いたり閉じたりする呼び出しを同じ document.ready 省略形の無名関数に入れてみてください。

于 2013-05-29T15:36:45.010 に答える