Loading...

          java .net

          收藏一個現(xiàn)實右鍵菜單的demo

          <%--

          /**

          *實現(xiàn)右鍵菜單功能

          */

          --%>

          <html>
              <body oncontextmenu = showMenu('')>
                  <form name = "menuForm">
                      <!--隱藏框,用來保存選擇的菜單的id值-->
                      <input type = "hidden" name = "id" value = "">
                      <table>
                      <tr>
                 <td><a href="javascript:clickMenu()" oncontextmenu = showMenu('0')>根目錄</a></td>
              </tr>
                      <tr>
                 <td><a href="javascript:clickMenu()" oncontextmenu = showMenu('1')>菜單一</a></td>
              </tr>

                      <tr><td><a href="javascript:clickMenu()" oncontextmenu = showMenu('2')>菜單二</a></td></tr>

                      </table>
                  </form>
              </body>

              <!-- 這里用來定義需要顯示的右鍵菜單 -->
              <div id="itemMenu" style="display:none">
                     <table border="1" width="100%" height="100%" bgcolor="#cccccc" style="border:thin" cellspacing="0">
                            <tr>
                                <td style="cursor:default;border:outset 1;" align="center" onclick="parent.create()">
                                新增
                                </td>
                            </tr>
                            <tr>
                                <td style="cursor:default;border:outset 1;" align="center" onclick="parent.update();">
                                修改
                                </td>
                            </tr>
                            <tr>
                                <td style="cursor:default;border:outset 1;" align="center" onclick="parent.del()">
                                刪除
                               </td>
                            </tr>
                     </table>
              </div>
              <!-- 右鍵菜單結(jié)束-->
          </html>


          <script language="JavaScript">

          /**

          *根據(jù)傳入的id顯示右鍵菜單

          */

          function showMenu(id){
              menuForm.id.value = id;

              if("" == id){
                  popMenu(itemMenu,100,"100");
              }
              else{
                  popMenu(itemMenu,100,"111");
              }

              event.returnValue=false;
              event.cancelBubble=true;
              return false;

          }


          /**

          *顯示彈出菜單

          *menuDiv:右鍵菜單的內(nèi)容

          *width:行顯示的寬度

          *rowControlString:行控制字符串,0表示不顯示,1表示顯示,如“101”,則表示第1、3行顯示,第2行不顯示

          */

          function popMenu(menuDiv,width,rowControlString){
              //創(chuàng)建彈出菜單
              var pop=window.createPopup();

              //設(shè)置彈出菜單的內(nèi)容
              pop.document.body.innerHTML=menuDiv.innerHTML;
              var rowObjs=pop.document.body.all[0].rows;

              //獲得彈出菜單的行數(shù)
              var rowCount=rowObjs.length;

              //循環(huán)設(shè)置每行的屬性
              for(var i=0;i<rowObjs.length;i++){
                  //如果設(shè)置該行不顯示,則行數(shù)減一
                  var hide=rowControlString.charAt(i)!='1';

                  if(hide){
                      rowCount--;
                  }

                  //設(shè)置是否顯示該行

                  rowObjs[i].style.display=(hide)?"none":"";

                  //設(shè)置鼠標滑入該行時的效果

                  rowObjs[i].cells[0].onmouseover=function(){
                      this.style.background="#818181";
                      this.style.color="white";
                  }
                  //設(shè)置鼠標滑出該行時的效果
                  rowObjs[i].cells[0].onmouseout=function(){
                      this.style.background="#cccccc";
                      this.style.color="black";
                  }

              }

              //屏蔽菜單的菜單
              pop.document.oncontextmenu=function() {
                      return false;
              }

              //選擇右鍵菜單的一項后,菜單隱藏
              pop.document.onclick=function(){
                      pop.hide();
              }
              //顯示菜單
              pop.show(event.clientX-1,event.clientY,width,rowCount*25,document.body);
              return true;

          }
          function create(){
              alert("create" + menuForm.id.value + "!");
          }

          function update(){
              alert("update" + menuForm.id.value + "!");
          }
          function del(){
              alert("delete" + menuForm.id.value + "!");
          }
          function clickMenu(){
              alert("you click a menu!");
          }
          </script>

          posted on 2008-08-26 22:06 閱讀(200) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
          博客園   IT新聞   Chat2DB   C++博客   博問  
           

          公告

          希望有一天

          我能用鼠標雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導(dǎo)航

          <2008年8月>
          272829303112
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統(tǒng)計

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網(wǎng)絡(luò)

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 贡嘎县| 封开县| 龙游县| 亚东县| 全椒县| 孝感市| 凤翔县| 永平县| 霸州市| 景宁| 个旧市| 德令哈市| 从江县| 织金县| 青川县| 阿城市| 霍林郭勒市| 文水县| 温宿县| 广东省| 太原市| 德阳市| 青海省| 汕尾市| 东丽区| 珲春市| 榕江县| 徐汇区| 河南省| 盈江县| 临夏县| 西华县| 灵山县| 钟山县| 汶川县| 新邵县| 枣庄市| 晋江市| 怀来县| 陇南市| 会东县|