在easyui-tabs中的href或 content的多种条件下的不同页面内容和页面地址的赋值?

  1. $('#tt').tabs('add', {.....});中 的 加载内容, 可以用content, 或用 href都是可以的. 虽然它们加载 的方式不一样, 但是 只要是加载进去后, 加载成功后, 在页面中的html代码都是一样的! 地位都是一样的, 都是 页面中的html代码

  2. content 可以直接写 html字符串, 也可以写 iframe src="foo.html" 都是一样的

  3. 如果是 href 就要写要加载的 页面地址, 但是:

  • 这个页面地址, 必须是用: "{:U('fooOperate')}", 必须是操作地址, 否则会报错!
  • 如果地址不是固定的, 可能分多种情况而不同, 那么href就不能写死了, 就要用一个 变量来 表示!
  • 然后 分情况 用 if...else 或 switch ..case来确定 那个 href的变量!
  • 但是 , 不能 在 tabs 的 add 方法中 , 再来使用 if...else等. 因为 这个是 js, 不是 html, 不是任意输出任意写的. 即 : 不能这样写: tabs('add', {...href: if(...){else....})这样就是 错误的.
<script>
$(function(){
  var tt=$('#tt');
  $('ul#pjck>li a').click(function(){
    var tit=this.innerHTML;

    if(tt.tabs('exists', tit)){
      tt.tabs('select', tit);
    }else{
      var hf='';
      if(tit=='按ff查看'){ hf= "{:U('ckt')}";}
      if(tit=='按fff查看'){ hf= "{:U('ckc')}";}
      if(tit=='按ggg查看'){ hf= "{:U('ckd)}";}
      if(tit=='按ffgf查看'){ hf= "{:U('cks')}";}
      tt.tabs('add',{
	title:tit,
	href: hf,
	closable:true,
	cache: true,
      });
    } 
  });
});
    </script>

========================

关于 ajax的 目标页面返回的 内容: 不管是什么页面, 即使是 php页面, 最后返回的 数据, 必须是 "输出 " 含义的: 必须是 echo的, 不能是 return的! 如果 把返回给 ajax 的内容 写成 return, 那么实际上 客户端是得不到 返回数据的, 必须是 echo的 !! 否则是很难调试这个错误的!

=============================================

关于js中的很长很多内容的字符串的动态拼接写法

js的字符串如果需要换行, 必须使用 反斜杠 \ 来连接, 否则会报错: unterminated string literal . 输出时, 所有反斜杠 前后的内容都被认为是字符串本身包含的内容. 如果alert会照原样输出
但是js支持 += 后面的字符串再带 加号. 而且, 如果是用 加号, 则可以任意地写 字符串. 而且中间的空格不会包含在结果字符串中.
为了逻辑清晰, 可能需要将一行中的数据, 写成多行拼接.
字符串动态拼接, 在ajax回调函数中, 几乎是必须的.

  • 要习惯于 函数的另一种定义写法: 用变量的方式: var getsomething = function(a,b)
  • js的对象: 关于js的对象, 参考: http://www.cnblogs.com/lidabo/archive/2011/12/17/2291238.html
    有两种表示方法: 一种是 直接用大括号的方式(简单粗暴) 比如: var one_Person={name: 'jack', age: 20} 但是要注意了: 这个时候, 就表示one_Person 已经是一个实实在在的\ 具体的对象了, 不只是 一个 类了. 因此 就不需要 再去 初始化了, 所以, 你可以 直接引用它的成员了. 比如: alert(one_Person.name). {} 中可以为空, 也可以非空

一种是用 函数的方式(即用类似 class 的方式) , 只是 关键字用的是 function, 不是 class. 比如:

function Person(iname, iage){
var  _this=this;   // 统一的用 _this来预先保存this.
var name='foo';   // 默认的私有成员的值
var age=10;
_this.name='foo';
_this.age=10;

var init = function(){
name=iname;
age=iage;
_this.name=iname;
_this.age=iage;

}

init(); // 模拟的构造函数


}

此时, 成员变量如果是私有的成员/私有方法/私有"构造函数" 都需要在前面加 var. (此时私有的就不能在 类的外部访问了), 如果要在 类的外部访问, 需要使用 this:: 可以在 "函数类" 中使用关键字 this.
要注意的是: 此时 我们定义的仅仅只是 一个类, 还没有 任何对象, 因此, 还不能直接使用 Preson类的name/age属性! 所以 必须 先 对 Person类 进行 初始化 ! 得到一个 实实在在的 对象后, 再 引用访问这个对象的属性即: alert(Person.name) 是没有结果的. (但是不能算错!) 而要用 var ap=new Person('jack', 15) 来生成一个实实在在的对象后, 再去访问它的属性成员: alert(ap.name) 就可以了

那种直接 用类的名称 来访问的属性, 跟传统的 OOP语言是类似的, 表示的是 访问类的 静态成员 和 静态方法, 定义的方式是: 在 定义 类后, 在紧接着类的后面, 在类的外面, 用: Person. staticStockProperty = 10000; Person.staticMethod= function(){...}

关于js的类的 属性/方法的访问, 可以使用 点语法, 也可以使用 中括号语法, 但是 点语法就只能是 "字面字符串属性名" 不能在进行计算变化了. 而中括号中可以包括 变量或数字, 当然用 字符串相加的加号, 即: 可以是 一个表达式, 表达式计算的结果作为属性名称.

js字符串拼接中的函数参数, 其类型如果是字符串, 但是 你 使用的是变量, 那么 要在 变量的 外面 额外地 加上 引号
var 定义字符串 定义的时候, 不能使用 +=

可以正常运行的代码并不表示 就是 : 合适的代码: 比如 : var num=1 和 num=1 两者并不相同: var num=1 是 变量声明(可能是全局变量, 也可能是 函数/对象中的局部变量) , 因此 它自带 "不可删除"的属性, 不能使用 delete num来删除它. 而 num=1 是 变量赋值: (首先会 在 当前作用域链)中寻找 该属性, 如果没有, 则 创建默认的 全局对象(即 浏览器的window对象) 的 属性. 因为是对象的属性, 所以, 可以用 delete来删除它. 这就是 : var num=1 和 num=1 变量声明 和 创建对象属性的区别.

===============

tp的find和select?

find: 当查询的结果只能是一条数据时, 建议使用find. 因为find会自动 在查询的后面加上 limit 1
find: 获得的结果是: 一维数组, 所以 可以直接 输出 这个数组的元素, 而不需要用volist等循环. 但是select 总是 输出的是 二维数组. 即使只有一条数据纪录, 也要这样: $resut[0]['name']等的样式来提取.

posted @ 2019-05-11 09:58  noitanym  阅读(718)  评论(0编辑  收藏  举报