我昨天的成果--常駐右下角的訊息提示 複製程式碼 程式碼如下: var msgClass = function(){ this.init = function(){ var msgDiv = "" "" "" " " " " " " " " " " " "" "您有新的消息,請注意查收! "position: fixed; bottom: 30px; right: 0px; _position: absolute; display: none;">" "" "" "" " " ""; $("body", window.parent.document).append(msgDiv) $("# msg_show_a", window.parent.document).click(function(){msg_click()}); } var msg_click = function(){ var msgDiv = window_click = function(){ var msgDiv = window.parent.document.ElementBy.document.ElementBysg. "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 var title = json[i].TITLE.substr(0, 12); var sub = " json[i ].TITLE "">" title " "; 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) 總結:$(selector, 你想要取得的視窗的document物件),以上! 2.動態加入元素事件 好。我先給兩種寫法,你來想想那是正確的。假設有一個JS方法: function fun(){....} 有html: 為這個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新增一個事件。 例如: 複製程式碼 程式碼> for(var i = 0; i var a = i 『 var a = i; 🎜> $("#div1").click(function(){ fun(a,b); }); 類似上面的例子,出現的問題就是:在fun方法中獲得到的a和b的值跟你實際上不一樣。解決方法就是呼叫click的另一個方法。 $("#div1").click(msg,function(e){fun(e.data)}; 其中msg是一個string類型的值.最簡單的是把要傳送的參數是把要傳送的參數方法寫成一個json形式。 debug功能看到它到底包含了什麼。 : 複製代碼 代碼如下: function fun(data) { var json; eval("json=" data); 〜 、.....操作json對象了,接下來的事情,自己做吧!