jquery中如何实现鼠标左键点击空白区域时可以失去当前点击事件(背景:jquery实现list界面无刷新动态编辑
js相关代码如下:$(document).ready(function(){vartds0=$(".slsSym");vartds1=$(".slsXfm");vartd...
js相关代码如下:
$(document).ready(function(){
var tds0 = $(".slsSym");
var tds1 = $(".slsXfm");
var tds2 = $(".slsRemark");
tds0.click(pclick);
tds1.click(pclick);
tds2.click(pclick);
function pclick(){
var id = $(this).parents("tr").eq(0).find("input[name=costID]").val();
var sym = $(this).parents("tr").children().length;
var lie = $(this).prevAll().length+1;
var tdNode = $(this);
var text = tdNode.text();
tdNode.html("");
var input = $("<input id=out size=4 />");
input.attr("value",text);
input.keyup(function(event){
var myEvent = event || window.event;
var mouse = event.button;
var kcode = myEvent.keyCode;
if(kcode == 13||mouse == 1){
var inputNode = $(this);
var val = inputNode.val();
if(lie==3){
_ajaxUpdateSym(val,id);
}
if(lie==4){
_ajaxUpdateXfm(val,id);
}
if(lie==6){
_ajaxUpdateRemark(val,id);
}
var tdNod = inputNode.parent();
tdNod.html(val);
tdNod.click(pclick);
} });
tdNode.append(input);
var inputdom = input.get(0);
inputdom.select();
tdNode.unbind("click");
}
function _ajaxUpdateSym(val,id){
$.ajax({
url:"<%=path%>/project/updateCostAction.action",
type:"POST",
data:{"costId":id,"sym":val},
dataType:"text",
error:function() {
//alert(ajaxdata);
alert("信息加载中,请稍等片刻重新点击!");
},
success: function(ajaxdata){
//alert(ajaxdata);
alert("修改成功!Sym");
alert("Sym="+val);
}
});
}
function _ajaxUpdateXfm(val,id){
$.ajax({
url:"<%=path%>/project/updateCostAction.action",
type:"POST",
data:{"costId":id,"xfm":val},
dataType:"text",
error:function(){
alert("信息加载中,请稍等片刻重新点击!");
},
success: function(ajaxdata){
//alert(ajaxdata);
alert("修改成功!Xfm");
}
});
}
function _ajaxUpdateRemark(val,id){......省略
代码应该怎样修改,请老师指教 展开
$(document).ready(function(){
var tds0 = $(".slsSym");
var tds1 = $(".slsXfm");
var tds2 = $(".slsRemark");
tds0.click(pclick);
tds1.click(pclick);
tds2.click(pclick);
function pclick(){
var id = $(this).parents("tr").eq(0).find("input[name=costID]").val();
var sym = $(this).parents("tr").children().length;
var lie = $(this).prevAll().length+1;
var tdNode = $(this);
var text = tdNode.text();
tdNode.html("");
var input = $("<input id=out size=4 />");
input.attr("value",text);
input.keyup(function(event){
var myEvent = event || window.event;
var mouse = event.button;
var kcode = myEvent.keyCode;
if(kcode == 13||mouse == 1){
var inputNode = $(this);
var val = inputNode.val();
if(lie==3){
_ajaxUpdateSym(val,id);
}
if(lie==4){
_ajaxUpdateXfm(val,id);
}
if(lie==6){
_ajaxUpdateRemark(val,id);
}
var tdNod = inputNode.parent();
tdNod.html(val);
tdNod.click(pclick);
} });
tdNode.append(input);
var inputdom = input.get(0);
inputdom.select();
tdNode.unbind("click");
}
function _ajaxUpdateSym(val,id){
$.ajax({
url:"<%=path%>/project/updateCostAction.action",
type:"POST",
data:{"costId":id,"sym":val},
dataType:"text",
error:function() {
//alert(ajaxdata);
alert("信息加载中,请稍等片刻重新点击!");
},
success: function(ajaxdata){
//alert(ajaxdata);
alert("修改成功!Sym");
alert("Sym="+val);
}
});
}
function _ajaxUpdateXfm(val,id){
$.ajax({
url:"<%=path%>/project/updateCostAction.action",
type:"POST",
data:{"costId":id,"xfm":val},
dataType:"text",
error:function(){
alert("信息加载中,请稍等片刻重新点击!");
},
success: function(ajaxdata){
//alert(ajaxdata);
alert("修改成功!Xfm");
}
});
}
function _ajaxUpdateRemark(val,id){......省略
代码应该怎样修改,请老师指教 展开
展开全部
什么叫失去当前点击事件??? 如果你空白的地方根本没有绑定click事件的话,那么你怎么点它都不会触发事件啊。如果真的有触发事件的话,那基本上是因为这个空白的地方有点击事件传播到这。 比如说你一个大范围的div,里面有一个小的div,你给这个小div绑定click事件的时候就会把这个事件传播到那个大的div去了,所以即使你不点击小div范围,但只要是在大的div里面的地方,都会触发这个事件
追问
我的意思是,比如在list页面上点击了一个...,它会添加一个input框,并将...中的内容放在input里,然后再修改,将修改后的数据 传到$.ajax(...)中,然后与后台交互,这样就完成动态编辑, 上述代码中都有体现。请您解决的问题是:假如我不小心点击了一个我不打算修改的...,我用鼠标点其他地方,或者点击我打算修改的...时,上一个点击事件能够消除,这各功能应该怎样实现??
追答
这个其实不是叫取消事件,你之前点击的那个事件已经触发了,不可能取消。不过你这个问题我有一个想法,就是你每次添加的那个input元素给它加一个唯一的类,然后如果你要实现你说的“取消”,那就直接通过这个特定的类找到之前触发的那个事件里添加的input元素,然后直接删掉这个元素,不就OK了么
展开全部
失去当前事件是什么意思呢, 如果是想让ajax请求终止, 可以用var req = $.ajax(...), req.abort()
如果是移除绑定的click事件 用unbind("click");
如果是移除绑定的click事件 用unbind("click");
追问
我的意思是,比如在list页面上点击了一个...,它会添加一个input框,并将...中的内容放在input里,然后再修改,将修改后的数据 传到$.ajax(...)中,然后与后台交互,这样就完成动态编辑, 上述代码中都有体现。请您解决的问题是:假如我不小心点击了一个我不打算修改的...,我用鼠标点其他地方,这个点击事件能够消除,这各功能应该怎样实现??
追答
这是一个check组的概念 同时只能单选 设置一个属性来记录是否被选中 每次选择时对组内其它元素判断并相应操作 不知道这样合适不
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询