做前端开发的时候,经常要用到自己页面的右键功能。整理一下,以备以后用到
//实现右键菜单功能---start
var keyArray = new Array(
new Array(0, "右键"),
new Array(1, "左键"),
new Array(2, "右键") // 测试在IE7中按右键是2,在Maxthon2.0正式版中是0
//测试同时按两个键更多的表示
//new Array(6, "中键右键同时按")
);
function GetKeyMessage(button)
{
for (var i = 0; i < keyArray.length; i++)
{
if (keyArray[i][0] == button)
{
return keyArray[i][1] + ", event.button = " + button;
}
}
return "未知组合键, event.button = " + button;
}
function Click() {
var e = arguments.callee.caller.arguments[0] || window.event;
var evt = e ? e : (window.event ? window.event : null);
if (evt.button == 2 || evt.button == 0) //按右键,// 测试在IE7中按右键是2,在Maxthon2.0正式版中是0
{
//处理代码
var addToTrTop = 10;
var addToTrLeft = 60;
var preEdit = null;
$("#ad_table td").mousedown(function (e) {
var code;
if (!e) var e = evt;
if (e.keyCode) {
code = e.keyCode;
} else if (e.which) {
code = e.which;
}
var tdData = $("#tmpEditor").val();
var tdData1 = $("#tmpEditor1").val();
if (code == 3) {
var tipStyle = 'top:' + (parseInt($(this).offset().top) + addToTrTop) + 'px;left:' + (parseInt($(this).offset().left) + addToTrLeft) + 'px;';
$("#clickTips").attr('style', tipStyle).show();
return false;
}
if (code == 1) {
if (!$(this).parent().hasClass('editting')) {
preEdit && preEdit.empty().html($.trim(tdData));
preEdit = null;
$("#tmpEditor").parent().html($("#tmpEditor").val());
$(".editting").removeClass('editting');
preEdit && preEdit.empty().html($.trim(tdData1));
preEdit = null;
$("#tmpEditor1").parent().html($("#tmpEditor1").val());
$(".editting").removeClass('editting');
return false;
}
}
});
//删除当前行--start
$("#delete").unbind().click(function () {
//确认删除
$.fancybox({
'autoDimensions': true,
'width': 620,
'height': "auto",
'transitionIn': 'elastic',
'showCloseButton': true,
'showNavArrows': false,
'overlayOpacity': '0.7',
'content': '#yewtan',
'type': 'inline',
'hideOnOverlayClick': false,
'padding':-2,
'border':0
});
$("#queding2").unbind().click(function (){
doDeleteTrData($("#delete"), 'delete');
$.fancybox.close();
});
$("#quxiao2").unbind().click(function (){
$.fancybox.close();
});
});
//删除--end;
//编辑当前行
$("#edit").unbind().click(function () {
doEditTrData($(this), 'edit')
});
// var addTrData = $("tr:first").clone(true).attr('class','newAdd');
var getIndex = function (clickedTd, type) {
var fields = $("#ad_table tr");
var addIndex = -1;
for (var i = 0; i < fields.length; i++) {
var tipStyle = clickedTd.parent().attr('style');
var topValue = 'top: ' + (parseInt(fields.eq(i).offset().top) + addToTrTop);
var ie_topValue = 'top: ' + (parseInt(fields.eq(i).offset().top) + (addToTrTop - 2));
if ((tipStyle.indexOf(topValue) != -1) || (tipStyle.indexOf(ie_topValue) != -1)) {
switch (type.toLowerCase()) {
case 'edit':
case 'delete':
addIndex = i;
break;
}
}
}
return addIndex;
};
var doDeleteTrData = function (clickedTd, type) {
if (getIndex(clickedTd, type) == -1) return false;
else {
var index = getIndex(clickedTd, type);
}
$("#ad_table tr").eq(index).remove();
return false;
};
var doEditTrData = function (clickedTd, type) {
if (getIndex(clickedTd, type) == -1) return false;
else {
var index = getIndex(clickedTd, type);
}
var ss=$("#ad_table").find("tr:eq(" + index + ") td:eq(2)").text();
var inputData='<input id="tmpEditor" type="text" value="'+ss+'">';
var data=$("#tmpEditor").val();
$("#ad_table").find("tr:eq(" + index + ") td:eq(2)").empty().append(inputData.replace('ss', data));
$("#tmpEditor").focus();
var ss2 =$("#ad_table").find("tr:eq(" + index + ") td:eq(1)").text();
var inputData1='<input id="tmpEditor1" type="text" value="'+ss2+'">';
var data1=$("#tmpEditor1").val();
$("#ad_table").find("tr:eq(" + index + ") td:eq(1)").empty().append(inputData1.replace('ss2', data1));
$("#tmpEditor1").focus();
$("#ad_table").find("tr:eq(" + index + ")").addClass('editting');
}
}
}