jQuery技术

JQuery ui dialog(close)无效的解决办法

字号+ 作者:H5之家 来源:H5之家 2017-02-28 17:06 我要评论( )

本文章给大家介绍自己在使用JQuery ui dialog时调用close()函数无效的解决办法,有碰到此类问题的同学可进入参考参考。

本文章给大家介绍自己在使用JQuery ui dialog时调用close()函数无效的解决办法,有碰到此类问题的同学可进入参考参考。

问题如下:
一开始我使用floatLayer.show弹出一个层并通过ajax加载一个窗体(下面用“窗体A”代替),在该窗体加载结束时,我将JQuery ui dialog在该窗体里初始化,并配置一些参数。
代码:

 代码如下 复制代码

$(function()
{
    //初始化参数
    $("#getcompany").dialog({ autoOpen: false, width: 760, height: $companyselectboxheight, closeOnEscape: false  });
}

此时,我调用打开:

 代码如下 复制代码

//打开
$("#getcompany").dialog('open');
或者关闭

//关闭
$("#getcompany").dialog('close');

一切正常。
但是,当我关闭窗体A,再调用上述的打开时是正常的,再关闭就不能关闭了。

最终的解决办法是,使对象$(“#getcompany”)变成全局的变量。
例如:

 代码如下 复制代码

$(function()
{
    //初始化参数
    GETCOMPANY = $("#getcompany");
    GETCOMPANY.dialog({ autoOpen: false, width: 760, height: $companyselectboxheight, closeOnEscape: false  });
}
//打开
GETCOMPANY .dialog('open');
//关闭
GETCOMPANY .dialog('close');

这样就没问题了。 ^_^
注意: GETCOMPANY 初始化时前不能加 var ,即不能写成 var GETCOMPANY = $(“#getcompany”);

JSON是一种基于文本的数据交换方式,或者叫做数据描述格式,你是否该选用他首先肯定要关注它所拥有的优点。

JSON的优点:

1、基于纯文本,跨平台传递极其简单;

2、Javascript原生支持,后台语言几乎全部支持;

3、轻量级数据格式,占用字符数量极少,特别适合互联网传递;

4、可读性较强,虽然比不上XML那么一目了然,但在合理的依次缩进之后还是很容易识别的;

5、容易编写和解析,当然前提是你要知道数据结构;

JSON的缺点当然也有,但在作者看来实在是无关紧要的东西,所以不再单独说明。

 
客户端

 代码如下 复制代码

<?php
/**
 * 使用 jsonp 跨域请求数据
 */
?>
<!DOCTYPE html>
<html>
<head>
<title>Test Jsonp</title>
</head>
<body>

<input type="button" id="changeMe" value="点我" />

<div id="changeMeText"></div>

<script type="text/javascript" src="js/jquery.min.js"></script>
<script>
$(document).ready(function() {
 $("#changeMe").click(function() {

  //var outUrl = 'http://itbdw.sinaapp.com/sagittarius/learnjs/jsonp_server.php';
  //var outUrl = 'http://svn/itbdw/1/sagittarius/learnjs/jsonp_server.php';
  var outUrl = 'http://2.itbdw.sinaapp.com/jsonp_server.php';

  /**/
  $.ajax({
   url:outUrl,
   dataType:'jsonp',

   // 传给服务器的参数
   //jsonp: "callback",

   // 传给服务器的参数值,可以不写
   //jsonpCallback:"callbackValue",
   success:function(data) {
    $("#changeMeText").html(data);
   },
  });
  /**/

  /*
  //手动拼接参数 callback 或者其它名称,和服务器对应即可
  $.getJSON(outUrl + '?callback=?', function(data) {
   $("#changeMeText").html(data);
  });
  */
 });
});

</script>

<!--
服务器端主要代码
$callback = $_GET['callback'];//自己过滤

if ($callback) {
 echo $callback . '("' . $data . '")';// data作为不含双引号或已经转义的字符串
 //echo $callback . '(' . $data . ')';// data作为json对象
} else {
 echo $data;
}

-->

</body>
</html>服务器端
 * @copyright 2011-2013 Zhao Binyan
 * @link
 * @link
 */

$callback = $_REQUEST['callback'];

$from = parse_url($_SERVER['HTTP_REFERER']);
$from_host = $from['host'];

$data = '成功跨域
MY HOST:' . $_SERVER['SERVER_NAME'] . '
';
$data .= 'YOUR HOST:' . $from_host . '
';
$data .= date('Y-m-d H:i:s');

if ($callback) {
 echo $callback . '("' . $data . '")';// data作为不含双引号或已经转义的字符串
 //echo $callback . '(' . $data . ')';// data作为json对象
} else {
 echo $data;
}

JSON的格式或者叫规则:

JSON能够以非常简单的方式来描述数据结构,XML能做的它都能做,因此在跨平台方面两者完全不分伯仲。

1、JSON只有两种数据类型描述符,大括号{}和方括号[],其余英文冒号:是映射符,英文逗号,是分隔符,英文双引号""是定义符。

2、大括号{}用来描述一组“不同类型的无序键值对集合”(每个键值对可以理解为OOP的属性描述),方括号[]用来描述一组“相同类型的有序数据集合”(可对应OOP的数组)。

3、上述两种集合中若有多个子项,则通过英文逗号,进行分隔。

4、键值对以英文冒号:进行分隔,并且建议键名都加上英文双引号"",以便于不同语言的解析。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • jQuery UI 中的 datepicker( )方法

    jQuery UI 中的 datepicker( )方法

    2017-03-01 10:01

  • 【黑基网】免费 动画 教程 培训 公开课

    【黑基网】免费 动画 教程 培训 公开课

    2017-02-28 13:00

  • JQuery入门、手册及教程

    JQuery入门、手册及教程

    2017-02-28 10:01

  • jquery页面加载

    jquery页面加载

    2017-02-28 09:05

网友点评
b