0

皆さん、JQuery ui では、一度クリックするとダイアログを閉じるクローズ リンクが生成されます。私の質問は、そのボタンを使用せずに閉じる方法ですか?

ポップアップする利用規約があり、UI から生成されたdecline termsリンクの代わりにリンクを使用する必要があります。close button

だから私がこれを行う方法を教えてください、ありがとう:)

編集:

次のコードを使用し、葉巻は使用しませんでした - Uncaught Error: cannot call methods on dialog before initialization; と表示されます。メソッド「close」を呼び出そうとしました

function decline(){

     $( '#decline' ).dialog( 'close' );

    }

セレクターがクリックされると、ここに送信される onclick="" が含まれます。セレクターは id="decline" です

ダイアログを取得する私のページのコード全体は次のとおりです-

$(function() {
        $( "dialog:ui-dialog" ).dialog( "destroy" );
    });
    function showUrlInDialog(url){
      var tag = $("<div></div>");
      $.ajax({
        url: url,
        success: function(data) {
          tag.html(data).dialog
          ({
              width: '100%',
                modal: true
          }).dialog('open');
        }
      });
    }
    function agree(){
        alert("Handler for .click() called.");
    }
    function decline(){

     $( '#decline' ).dialog( 'close' );

    }

それを初期化するセレクターは次のとおりです-

<a href="#" onclick="showUrlInDialog('termsofservice.php'); return false;">link to page B</a>

ダイアログボックスを閉じたいセレクターは次のとおりです-

<a href="#" onclick="decline();" id="decline"><span >I decline these terms</span></a>

編集 -

これは私が成功せずに使用している新しいコードです:

function decline(){

     $( '#terms-container' ).dialog( 'close' );

    }

terms-container は、初期化子がデータを取得する他のファイルからのメイン div です。

4

2 に答える 2

2

使ってみて$( '.dialog' ).dialog( 'close' );

「.dialog」をセレクターに置き換えます

$( 'a#decline' ).on( 'click', function() {
    $( this ).closest( '.ui-dialog' ).dialog( 'close' );
}) ;

コードはインライン JavaScript を使用して設定されているため、上記は機能しません。拒否機能をこれに変更してみてください

function decline() {
 $( 'dialog:ui-dialog' ).dialog( 'close' );
 // OR THIS
 $( '.ui-dialog' ).children( 'div' ).eq( 0 ).dialog( 'close' );
}
于 2013-01-15T23:03:32.897 に答える
2

別の場所からダイアログを閉じる必要があるため、その場で作成するのではなく、ajax 呼び出しから html を取得する div を作成することをお勧めします。HTML:

<a href="#" onclick="showUrlInDialog('termsofservice.php'); return false;">link to page B</a>
<a href="#" onclick="decline();" id="decline"><span >I decline these terms</span></a>
<div id="dialog-container"></div>

Javascript:

$(function() {
    $("#dialog-container").dialog( "destroy" );
});
function showUrlInDialog(url){
  var tag = $("#dialog-container");
  $.ajax({
    url: url,
    success: function(data) {
      tag.html(data).dialog
      ({
          width: '100%',
            modal: true
      }).dialog('open');
    }
  });
}
function agree(){
    alert("Handler for .click() called.");
}
function decline(){

 $("#dialog-container").dialog( 'close' );

}
于 2013-01-15T23:26:23.253 に答える