JQquery的一些使用心得分享_jquery

我昨天的成果--常驻右下角的消息提示

复制代码 代码如下:

var msgClass = function(){
this.init = function(){
var msgDiv = "<div id = \"msg_show\" style=\"position: fixed; bottom: 0px; right: 0px; _position: absolute; display: none;\">" +
"<a id = \"msg_show_a\" href=\"javascript:void(0);\">" +
"<div style=\"float: left; width: 200px; height: 30px; font-size: 12px; color: #f00; line-height: 30px; text-align: left; position: relative; border: 1px #ccc solid; background-color: #eff;\">" +
"<img src=\"/common/images/xx.gif\" width=\"11\" height=\"11\" style=\"float: left; margin: 9px; display: inline;\" />" +
"您有新的消息,请注意查收!" +
"</div>" +
" </a>" +
"</div>" +
"<div id=\"msg_block\" style=\"position: fixed; bottom: 30px; right: 0px; _position: absolute; display: none;\">" +
"<div style=\"float: left; width: 200px; height: 140px; position: relative; border: 1px #ccc solid; background-color: #eff; overflow-x:hidden; overflow-y:scroll\">" +
"<ul class=\"xxx\" id=\"msg_content\">" +
"</ul>" +
"</div>" +
"</div>";
$("body", window.parent.document).append(msgDiv)
$("#msg_show_a", window.parent.document).click(function(){msg_click()});
}
var msg_click = function(){
var msgDiv = window.parent.document.getElementById("msg_block");
if ("none" == msgDiv.style.display) {
msgDiv.style.display = "block";
} else {
msgDiv.style.display = "none";
}
}
this.getMessage = function() {
$.ajax( {
tyep : "POST",
url : "/msg/getPromptMsgInfo.action",
success : function(msg) {
var json = eval(msg);
var num = json.length;
if (num != 0) {
$("#msg_show",window.parent.document).css("display", "");
$("#msg_content", window.parent.document).empty();
for ( var i = 0; i < num; i++) {
var title = json[i].TITLE.substr(0, 12);
var sub = "<li title=\""
+ json[i].TITLE
+ "\"><a id =\"a_"+i+"\" href=\"javascript:void(0)\" >"
+ title
+ "</a></li>";
var MSG_ID=json[i].MSG_ID;
var RELATION_ID=json[i].RELATION_ID;
$("#msg_content", window.parent.document).append(sub);
$("#a_"+i, window.parent.document).click("{'MSGID':'"+MSG_ID+"','RELATIONID':'"+RELATION_ID+"'}",
function(e){
msgSelected(e.data);
});
}
}else{
$("#msg_show", window.parent.document).css("display", "none");
}
}
});
}
var msgSelected = function(data) {
var href = "";
var json;
eval("json="+data);
var msgId = json.MSGID;
var relationId = json.RELATIONID;
/*start----write your logic*/
if (1 == relationId) {
href = "/usercenter/showWaitDiagnose.action?isOnClick=3";
}
//........
/*end----*/
$.ajax( {
type : "post",
url : "/msg/updateMsgStatue.action",
data : "msgId=" + msgId,
success : function() {
parent.window.location.href = href;
}
});
}
}
function getMsg(){
new msgClass().getMessage();
}
$(document).ready(function(){
var msg = new msgClass();
msg.init();
msg.getMessage();
setInterval("getMsg()", 3000);
});

好吧,首先我得承认,我原以为我对jQuery的使用还过得去,可是经过昨天的工作,我才发现,原来,我才算是刚刚入门。好吧。下面,我简单讲一下,我昨天遇到的问题以及解决方案。
  1.从iframe中获取父窗口中的元素
    例如:获取父窗口中的body,以便可以动态的插入一些元素: $("body", window.parent.document)
       获取父窗口中主键为 identity 的元素 : $("#identity", window.parent.document)
    总结:$(selector, 你想要获取的窗口的document对象),以上!
  2.动态添加元素事件
    好吧。我先给出两种写法,你来想想那个是正确的。假设有一个JS方法: function fun(){....} 有html:<div id = "div1"></div> 为这个div添加一个onclick事件
    2.1 $("#div1").click(fun());
    2.2 $("#div1").click(function(){fun()});
    好啦,到底是2.1对还是2.2呢?
    想到了没有?正确的答案应该是2.2.不信的可以试一试。如果用2.1的方法,效果跟运行fun()这个方法是一样的。
  3.传参数的问题
    讲到了方法,就要讲一下参数的问题。假设我们有方法 function fun(a, b){....} 现在我在另一个方法里面调用2.2方法为div添加一个事件。
    例如:

复制代码 代码如下:

    function fun1(){
      for(var i = 0; i < NUM; i++){
          var a = i;
          var b = i+1;
        $("#div1").click(function(){
          fun(a,b);
        });
      }
    }

    类似上面的例子,出现的问题就是:在fun方法中获取到的a和b的值跟你实际不一样。解决方法就是调用click的另一个方法。
    $("#div1").click(msg,function(e){fun(e.data)};
    其中msg是一个string类型的值.最简单的办法是把要传送的参数写成一个json形式。
    这里的e你可能会以为是你要传送的数据。其实不然,这里的e是把一个click事件的对象,里面包含了我们要传送的数据。你可以通过firebug的debug功能看到它到底包含了什么。
    可能你对e.data更加好奇.其实e.data就是我们要传送的数据msg。你可以通过firebug看到。
    最后在fun函数中 调用:

复制代码 代码如下:

    function fun(data)
    {
      var json;
      eval("json="+data);
      .....
    }

这样就可以操作json对象了,接下来的事情,自己做吧!

时间: 2024-09-11 17:51:04

JQquery的一些使用心得分享_jquery的相关文章

百度索引和site差别太大经过投诉放出来后的心得分享

对于很多站长而言,网站被K或者是被百度降权后的一段时间里,网站的收录始终不放出来是个很让人头疼的问题,在这个过程中有个考核期,这个考核的时间在一个月左右,在这个期间每天都要扎实的坚持网站的内容和外链建设,尤其要把好这两方面的质量关,内容和外链在于精不在于多,这个过程是比较痛苦的,因为你每天做的事情看不到任何成效 ,尤其体现在收录的增长上,没有收录很难有好的排名,但是这个考核期过了以后该怎么善意的提醒一下百度把自己的网站解救出来呢,先来说说我自己的亲身体验. 我手头有一个朋友的网站,因为采集被K之

有关SEO关键字策略规划的技巧心得分享

网络上谈SEO的文章是漫天飞舞,有基础性教程.有心得分享.也有东搬西凑的.但是对SEO关键字策略规划的系统性文章相对较少,菜根谭分享下自己这方面的一些心得感悟. 首先,对SEO有些了解的应该都知道,SEO是一个系统工程,有站内代码标签优化.站内内容优化.站外链接建设.域名空间因素这几大模块.但是,菜根谭网络营销机构认为,在具体操作这些细节之前,我们应该先进行关键字策略分析. 经常看见很多网站的SEO不重视关键字分析,网站关键字都是凭空想象,以主观意志来选择关键字,或者一味选择广泛且竞争力的关键字

BootStrap的Datepicker控件使用心得分享_javascript技巧

2013年Bootstrap火了,2014年Bootstrap将继续受到更多人的喜欢,它不仅拥有一套完整漂亮的UI,而且爱好者们为其开发扩展了很多有用的插件和主题!让其拥有无限可能! 公司喜欢使用各种开源免费的框架,bootstrap就非常好用,而且框架布局很漂亮,用起来也很简单.今天遇到要使用它的datepicker这个控件. 问题是:两个时间点,分为开始时间和结束时间,结束时间必须在开始时间之后.于是一顿研究,从上午研究到3点才解决问题. 总结了一下问题所在.主要原因是项目里用的jquery

SAAS平台运营心得分享!

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 SAAS平台运营心得分享! 07年底到08年初,中国的互联网冒出了一批新面孔,有神州数码推出的saasbb.com,有金碟和IBM合作推出的友商网,有阿里巴巴旗下的阿里软件公司推出的SAAS平台.还有许多大大小小的SAAS平台,综观国内的SAAS模式和SAAS行业,处于刚起步阶段,虽然中国的SAAS模式出现很早,但是一直因为市场环境不成熟,导

佳能50D相机拍摄人像技巧心得分享

给各位摄影爱好者们来详细的解析分享一下佳能50D相机拍摄人像的技巧心得. 心得分享: <拍摄数据> 相机:EOS 50D 镜头:EF 50mm f/1.2L USM 光圈优先自动曝光(F1.6,1/320秒) 白平衡:自动 ISO 200 照片风格:标准 步骤1:将相机固定在三脚架上,以便更好使用明亮的镜头 在窗边拍摄人像时,适合使用最大光圈明亮的定焦镜头.透过窗帘射入的窗边光线看起来虽然很强,但实际上光量是比较小的.而且室内的背景往往比较繁杂,为了使背景产生虚化以简化构图,也应该使用虚化柔和

大家把自己学c#的心得分享下

问题描述 大家在这把自己学习c#的心得分享下吧 解决方案 解决方案二:大虾们分享下你们的学习心得阿谢谢

浩浩创业心得分享.如何利用网络来创业实体生意

浩浩http://www.aliyun.com/zixun/aggregation/7105.html">创业心得分享.如何利用网络来创业实体生意 本人文笔不太行 写的不好请见谅 先自我介绍一下吧 姓名:陈浩 年龄:22 QQ:45209492 性别:带把的 网名: 浩浩 浩浩IBM 浩浩卖电脑 南京浩浩 文化程度: 初中退学 职业: 台式电脑DIY装机店+二手IBM批发+神舟联想全新渠道 上网年龄:9年以上 性格:开朗,自由,爱沟通,喜欢交朋友 爱好:网络,现实腐败 理想:南京乃至江苏,

photoshop基础素材合成心得分享

给各位photoshop软件的使用者们来详细的解析分享一下基础素材的合成心得. 心得分享: 合成,顾名思义:就几个部分合并成一个整体,最重要的两大块不外乎透视和光影关系.搞清楚这个两关系,基本就没啥大问题了.     找到喜欢的,打个草稿试试     找透视,找视平线     根据透视拍摄产品     开始合成     产品带入场景             可选颜色,作用:统一中性色.亮部.暗部色彩,用于微调部分.         案例分析:我们为什么要用到合成图             好了,

佳能500D相机拍摄夜景人像照片心得分享

给各位摄影爱好者们来详细的解析分享一下佳能500D相机拍摄夜景人像照片的心得. 心得分享: 以绚丽夜景作为背景拍摄夜景人像.而且令人意外的是,经常会遇到这样的拍摄场合.夜景人像的拍摄中,平衡背景亮度和人物亮度是决定性的关键.     如图所示,快门速度是以背景建筑物的亮度为基准所决定.利用低速同步进行拍摄时,人物亮度通过闪光灯来获得.这样一来,背景亮度的控制便成为拍摄的关键所在. 拍摄数据 相机:EOS 500D 镜头:EF-S 18-55mm f/3.5-5.6 IS/快门优先自动曝光(F5.