JQquery的一些使用心得分享
使用 分享 一些 心得
2023-06-13 09:14:34 时间
我昨天的成果--常驻右下角的消息提示
复制代码代码如下:
varmsgClass=function(){
this.init=function(){
varmsgDiv="<divid=\"msg_show\"style=\"position:fixed;bottom:0px;right:0px;_position:absolute;display:none;\">"+
"<aid=\"msg_show_a\"href=\"javascript:void(0);\">"+
"<divstyle=\"float:left;width:200px;height:30px;font-size:12px;color:#f00;line-height:30px;text-align:left;position:relative;border:1px#cccsolid;background-color:#eff;\">"+
"<imgsrc=\"/common/images/xx.gif\"width=\"11\"height=\"11\"style=\"float:left;margin:9px;display:inline;\"/>"+
"您有新的消息,请注意查收!"+
"</div>"+
"</a>"+
"</div>"+
"<divid=\"msg_block\"style=\"position:fixed;bottom:30px;right:0px;_position:absolute;display:none;\">"+
"<divstyle=\"float:left;width:200px;height:140px;position:relative;border:1px#cccsolid;background-color:#eff;overflow-x:hidden;overflow-y:scroll\">"+
"<ulclass=\"xxx\"id=\"msg_content\">"+
"</ul>"+
"</div>"+
"</div>";
$("body",window.parent.document).append(msgDiv)
$("#msg_show_a",window.parent.document).click(function(){msg_click()});
}
varmsg_click=function(){
varmsgDiv=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){
varjson=eval(msg);
varnum=json.length;
if(num!=0){
$("#msg_show",window.parent.document).css("display","");
$("#msg_content",window.parent.document).empty();
for(vari=0;i<num;i++){
vartitle=json[i].TITLE.substr(0,12);
varsub="<lititle=\""
+json[i].TITLE
+"\"><aid=\"a_"+i+"\"href=\"javascript:void(0)\">"
+title
+"</a></li>";
varMSG_ID=json[i].MSG_ID;
varRELATION_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");
}
}
});
}
varmsgSelected=function(data){
varhref="";
varjson;
eval("json="+data);
varmsgId=json.MSGID;
varrelationId=json.RELATIONID;
/*start----writeyourlogic*/
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;
}
});
}
}
functiongetMsg(){
newmsgClass().getMessage();
}
$(document).ready(function(){
varmsg=newmsgClass();
msg.init();
msg.getMessage();
setInterval("getMsg()",3000);
});
好吧,首先我得承认,我原以为我对jQuery的使用还过得去,可是经过昨天的工作,我才发现,原来,我才算是刚刚入门。好吧。下面,我简单讲一下,我昨天遇到的问题以及解决方案。
1.从iframe中获取父窗口中的元素
例如:获取父窗口中的body,以便可以动态的插入一些元素:$("body",window.parent.document)
获取父窗口中主键为identity的元素:$("#identity",window.parent.document)
总结:$(selector,你想要获取的窗口的document对象),以上!
2.动态添加元素事件
好吧。我先给出两种写法,你来想想那个是正确的。假设有一个JS方法:functionfun(){....}有html:<divid="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.传参数的问题
讲到了方法,就要讲一下参数的问题。假设我们有方法functionfun(a,b){....}现在我在另一个方法里面调用2.2方法为div添加一个事件。
例如:
functionfun1(){
for(vari=0;i<NUM;i++){
vara=i;
varb=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函数中调用:
functionfun(data)
{
varjson;
eval("json="+data);
.....
}
这样就可以操作json对象了,接下来的事情,自己做吧!
相关文章
- 使用 html2canvas 生成分享图片,CDN图片不展示问题
- 干货分享--animate如何使用usb口调试影片animate使用usb口调试影片方法{an资源分享}
- 分享:手把手教你如何免费且光荣地使用正版IntelliJ IDEA
- 使用 php 实现 JWT 认证
- 【实用的开源项目】使用服务器部署Sharry:真的很好用的文件分享程序!
- 虹科分享|在ntopng中使用多用户模式
- 开源项目使用与分享--guacamole-powershell
- 分享一个使用Mongodb实现打卡签到系统的实例代码
- SQLServer 错误 26014 无法加载用户指定的证书 [Cert Hash(sha1) “%hs”]。 服务器将不接受连接。 您应该验证是否正确安装了证书。 请参阅联机丛书中的“配置证书以供 SSL 使用”。 故障 处理 修复 支持远程
- 高并发技巧之Redis和本地缓存使用技巧分享
- iOS开发-友盟分享使用(2)详解手机开发
- spring自带HTTP请求工具类的简单使用详解编程语言
- java使用POI操作excel文件,实现批量导出,和导入详解编程语言
- Oracle 视图 USER_SCHEDULER_GROUPS 官方解释,作用,如何使用详细说明
- MySQL Variables thread_cache_size 数据库 参数变量解释及正确配置使用
- 的使用使用Oracle中的字符函数(oracle中字符函数)
- python文件读写并使用mysql批量插入示例分享(python操作mysql)
- Oracle数据库外键引用技术使用简介(oracle外键引用)
- 25字文章标题:为什么使用Linux? Linux 至少需要的必备知识(linux至少需要)
- PHP的可变变量名的使用方法分享
- mailto的使用技巧分享
- android使用gesturedetector手势识别示例分享
- java使用ftp上传文件示例分享
- 使用python解析xml成对应的html示例分享
- PHP实例分享判断客户端是否使用代理服务器及其匿名级别