Struts項(xiàng)目中右鍵菜單一般很少用到,但是一旦客戶有要求,很多人就懵圈了,比如我。這個(gè)時(shí)候,當(dāng)然要表現(xiàn)鎮(zhèn)定,一面拍著胸口對客戶承諾說絕對可以實(shí)現(xiàn),一面趕緊打開百度神器,搜搜看是否有前人已經(jīng)寫好的插件。
于是便找到了jQuery的ContextMenu插件。上官網(wǎng)看看Demo,真不錯(cuò),正是我要的效果。源碼下下來,卻沒有說明文檔告訴我們該如何組裝,可能寫這插件的牛人們覺得步驟太簡單,寫出來都覺得丟人。可苦了我們這等愚昧之徒,研究半天,總算從一堆代碼中取其精華棄其糟粕,形成最簡練的代碼,以供初學(xué)者們參考。
官網(wǎng)下載地址:http://plugins.jquery.com/contextMenu/
我這邊下的是1.6.6版本。源碼目錄結(jié)構(gòu)如下:

里邊有個(gè)demo.html文件,這個(gè)就是我們要研究的對象。打開這個(gè)文件,可以試試效果,感覺不錯(cuò)吧。

但是用記事本或者其他編輯器查看源代碼,你會覺得頭暈。一堆的js文件和css文件,恐怖不是每個(gè)都是必須的,這就要我們自己調(diào)試了,插件作者是不會告訴我們的。

OK,由于時(shí)間關(guān)系,我已經(jīng)幫大家刪掉多余的代碼,精簡后的代碼如下:
<html><head> <title>jQuery contextMenu Plugin Demo</title> <script src="jquery-1.8.2.min.js" type="text/javascript"></script> <script src="src/jquery.contextMenu.js" type="text/javascript"></script> <link href="src/jquery.contextMenu.css" rel="external nofollow" rel="stylesheet" type="text/css" /></head><body><div class="context-menu-one"> <strong>right click me</strong></div><script type="text/javascript" class="showcase">$(function(){ $.contextMenu({ selector: '.context-menu-one', callback: function(key, options) { var m = "clicked: " + key; window.console && console.log(m) || alert(m); }, items: { "edit": {name: "Edit", icon: "edit"}, "cut": {name: "Cut", icon: "cut"}, "copy": {name: "Copy", icon: "copy"}, "paste": {name: "Paste", icon: "paste"}, "delete": {name: "Delete", icon: "delete"}, "sep1": "---------", "quit": {name: "Quit", icon: "quit"} } }); $('.context-menu-one').on('click', function(e){ console.log('clicked', this); })});</script></body></html>運(yùn)行效果:

根據(jù)這段精簡后的代碼,我們就可以知道使用這個(gè)插件了。
第一步:把核心文件jquery-1.8.2.min.js、jquery.contextMenu.js、jquery.contextMenu.css拷貝至我們的項(xiàng)目中。
第二步:編寫生成菜單以及相應(yīng)菜單動作的javascript腳本。
$(function(){ $.contextMenu({ selector: '.context-menu-one', callback: function(key, options) { var m = "clicked: " + key; window.console && console.log(m) || alert(m); }, items: { "edit": {name: "Edit", icon: "edit"}, "cut": {name: "Cut", icon: "cut"}, "copy": {name: "Copy", icon: "copy"}, "paste": {name: "Paste", icon: "paste"}, "delete": {name: "Delete", icon: "delete"}, "sep1": "---------", "quit": {name: "Quit", icon: "quit"} } }); $('.context-menu-one').on('click', function(e){ console.log('clicked', this); })});第三步:在合適的位置設(shè)置右鍵菜單。
<div class="context-menu-one"> <strong>right click me</strong></div>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答