嘿伙计,所以我有一个界面,一旦用户登录他们的信息被检查,如果用户没有读取TOS,则对话框将打开。我的问题是,它永远不会打开。
代码:
function run(){
var url = '/pcg/termsofservice/termsofservice.php';
showUrlInDialog(url);
}
function showUrlInDialog(url){
var tag = $("#dialog-container");
$.ajax({
url: url,
success: function(data) {
tag.html(data).dialog
({
width: '100%',
modal: true
}).dialog('open');
}
});
}
// if user accepts
function agree(){
alert("Handler for .click() called.");
}
/******is user declines ******/
function decline(){
$("#dialog-container").dialog( 'close' );
/*****run ajax to kill session of current user and return to login page ******/
$.ajax({ url: '/PCG/termsofservice/declinedkill.php',
data: {},
type: 'post',
success: function(output) {
window.location.replace("/PCG/mainlogin.php");
}
});
}
PHP检查他们是否还没有读过TOS:
//GET TOS setting if any in place, if so display TOS
$TOS = $_GET['TOS'];
if ($TOS == 0){
echo '<script type="text/javascript">'
, 'run();'
, '</script>';
}
在上面的javascript代码中 - "#dialog-container"
仅在$ TOS变量为0时定义:
<!-- See if TOS is active, if so add these divs for the overlay -->
<?php
echo '<div id="dialog-container">
</div>';
?>
所有这些都有效,除了没有任何显示。
如果您有任何错误,请告诉我,谢谢:)
答案 0 :(得分:1)
var tag = $("#dialog-container");
使用它:
var tag = $(document).find("#dialog-container");
并改变它:
tag.html(data).dialog({
width: '100%',
modal: true,
autoOpen:true
});
结帐文档:http://api.jqueryui.com/dialog/#option-autoOpen
并拨打run();
doc ready handler
答案 1 :(得分:1)
看起来你在jQuery准备好之前调用了jQuery方法。你应该在jQuery的document.ready函数中调用run()。
<script type="text/javascript">
$(document).ready(function() {
run();
});
</script>
答案 2 :(得分:0)
function showUrlInDialog(url){
var tag = $("#dialog-container").dialog({width: '100%',modal: true,autoOpen:false });
$.ajax({
url: url,
success: function(data) {
tag.html(data)
tag.dialog('open');
}
});
}
试试这个...... !!
答案 3 :(得分:0)
你的div&#34;#dialog-container&#34;不存在,如果你把这个div放在你的html代码中进行简单的测试就可以了。