最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery右鍵菜單contextMenu使用實(shí)例

 更新時間:2011年09月28日 23:52:51   作者:  
在最近項(xiàng)目中需要頻繁的右鍵菜單操作。我采用了contextMenu這款jQuery插件。
在下面我們將設(shè)計(jì)一個場景,表格grid需要在每行實(shí)現(xiàn)鼠標(biāo)右鍵,增加,刪除,保存操作。grid我就用gridview了,隨便用微軟提供的樣式,測試用例不用搞的多好看嘛,我也不是做美工了,哈哈,偷偷懶。

先上效果圖,是有些同志說的有圖才有真相嘛:

ui代碼:
復(fù)制代碼 代碼如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<%-- --%>
<script src="Script/jquery.js" type="text/javascript"></script>
<script src="Script/jquery.contextmenu.r2.js" type="text/javascript"></script>
<style type="text/css">
.SelectedRow
{
background: yellow;
}
.contextMenu
{
display: none;
}
</style>
<script type="text/javascript">
$(function() {
$('#GridView1 tr:gt(0)').contextMenu('menu',
{
bindings:
{
'add': function(t, target) {
alert('Trigger:' + t.id + ' 增加' + " taget by:" + $("td:eq(0)", target).text());
},
'delete': function(t, target) {
alert('Trigger:' + t.id + ' 刪除' + " taget by:" + $("td:eq(0)", target).text());
$(target).remove();
},
'save': function(t, target) {
alert('Trigger:' + t.id + ' 保存' + " taget by:" + $("td:eq(0)", target).text());
},
'About': function(t, target) {
alert('Code by http://www.cnblogs.com/whitewolf/');
}
},
onShowMenu: function(e, menu) {
if (parseInt($("td:eq(0)", e.currentTarget).text()) > 10) {
$("#save", menu).remove();
}
$(e.currentTarget).siblings().removeClass("SelectedRow").end().addClass("SelectedRow");
return menu;
}
});
})
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div class="contextMenu" id="menu">
<ul>
<li id="add">
<img src="image/Home_Age_UnSelect.jpg" width="16" height="16" />
編輯</li>
<li id="delete">
<img src="image/Home_Age_UnSelect.jpg" width="16" height="16" />
刪除</li>
<li id="save">
<img src="image/Home_Age_UnSelect.jpg" width="16" height="16" />
保存</li>
<li id="About">
<img src="image/Home_Age_UnSelect.jpg" width="16" height="16" />
關(guān)于</li>
</ul>
</div>
<asp:GridView ID="GridView1" runat="server" Width="100%" BackColor="White" BorderColor="#CCCCCC"
BorderStyle="None" BorderWidth="1px" CellPadding="3">
<RowStyle ForeColor="#000066" />
<FooterStyle BackColor="White" ForeColor="#000066" />
<PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />
<SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />
<HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />
</asp:GridView>
</div>
</form>
</body>
</html>

注:
1:contextMenu我們互根據(jù)數(shù)據(jù)記錄隱藏一些菜單項(xiàng),這個可以在onShowMenu事件中,根據(jù)
e.currentTarget觸發(fā)源獲取數(shù)據(jù),在根據(jù)remove菜單項(xiàng)。比如測試用例中的:如果id>10則不允許保存
if (parseInt($("td:eq(0)", e.currentTarget).text()) > 10) {
$("#save", menu).remove();
}
2:事件注冊:根據(jù)第二個參數(shù)target獲取數(shù)據(jù),第一個參數(shù)t獲取菜單項(xiàng)。比如:
復(fù)制代碼 代碼如下:

'add': function(t, target) {
alert('Trigger:' + t.id + ' 增加' + " taget by:" + $("td:eq(0)", target).text());
},

在這里需要用到ajax和服務(wù)端通訊,可以采用我的上一篇組件:jQuery Ajax 仿AjaxPro.Utility.RegisterTypeForAjax輔助方法,將會更簡單應(yīng)用ajax通訊。
在我下的源代碼中這里有點(diǎn)問題:
原來的,這里的currentTarget始終為undefined。
復(fù)制代碼 代碼如下:

if (!!cur.onShowMenu) menu = cur.onShowMenu(e, menu);
$.each(cur.bindings, function(id, func) {
$('#' + id, menu).bind('click', function(e) {
hide();
func(trigger, currentTarget);
});
});

我修改后:
復(fù)制代碼 代碼如下:

if (!!cur.onShowMenu) menu = cur.onShowMenu(e, menu);
$.each(cur.bindings, function(id, func) {
$('#' + id, menu).bind('click', function(ev) {
hide();
func(trigger, e.currentTarget);
});
});

這樣就一切正常了。
內(nèi)容很少,一切就在此打斷,結(jié)束 ,over!
附件下載:Demo

相關(guān)文章

最新評論

赞皇县| 醴陵市| 长治县| 安图县| 九江县| 永丰县| 庆阳市| 镇巴县| 日喀则市| 唐山市| 榆林市| 岗巴县| 贞丰县| 巧家县| 资兴市| 上蔡县| 南陵县| 万全县| 紫云| 贵南县| 广汉市| 乳山市| 天镇县| 尼木县| 海阳市| 正蓝旗| 迭部县| 年辖:市辖区| 揭东县| 松阳县| 堆龙德庆县| 玉林市| 福海县| 白水县| 永德县| 棋牌| 那坡县| 武功县| 靖州| 临朐县| 正阳县|