嘿伙计们,所以在JQuery中,它会产生一个关闭链接,一旦点击它关闭对话框。我的问题是如何在不使用该按钮的情况下关闭它?
我有弹出的服务条款,我需要使用decline terms
链接,而不是从ui生成的close button
。
所以让我知道我是怎么做的,谢谢:)。
编辑:
我使用了以下代码并且没有雪茄 - 告诉我Uncaught Error:在初始化之前无法调用对话框上的方法;试图调用方法'关闭'
function decline(){
$( '#decline' ).dialog( 'close' );
}
单击选择器后,它会有一个onclick =“”,将其发送到此处。选择器是id =“拒绝”
以下是我页面上抓取对话框的完整代码 -
$(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' );
}
答案 0 :(得分: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' );
}
答案 1 :(得分: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' );
}