0

嘿伙计们,所以在 JQuery ui 中它会产生一个关闭链接,一旦单击它就会关闭对话框。我的问题是如何在不使用该按钮的情况下将其关闭?

我有一个弹出的服务条款,我需要使用decline terms链接而不是close button从 ui 生成的链接。

所以让我知道我是怎么做的,谢谢:)

编辑:

我使用了以下代码并且没有雪茄 - 告诉我未捕获的错误:在初始化之前无法调用对话框上的方法;试图调用方法“关闭”

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

由于您需要从其他地方关闭对话框,我建议创建一个 div 来从 ajax 调用中获取您的 html,而不是动态创建它。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 回答