日期:2014-05-17  浏览次数:20420 次

jquery unbind 不起作用
我做的是个可编辑的table单元格
其中这个table是通过ajax动态生成的  
  html.Append("<td align=right im='QTY' ondblclick='javascript:EditInfo(this)'>" + dr["b_QTY"].ToString());
  html.Append("</td>");
js如下:
JScript code

function EditInfo(obj) {
    $(obj).unbind("dblclick");
    var objVal = $(obj).html();
    var id = Math.round(Math.random(10000));
    $(obj).html("");
    $(obj).html("<input id='" + id + "' onblur='Recover(this)' type='text' value='" + objVal + "' style='width:80px;'/>");
    $("#" + id).focus();
}
function Recover(obj) {
    var inputVal = $(obj).val();
    var tdObj = $(obj).parent();
    var trObj = tdObj.parent();
    tdObj.html(inputVal);
    tdObj.bind("dblclick", EditInfo(tdObj));
}


但是当我在页面中单击成为编辑框以后,再次双击就会出现<input id='" + id + "' onblur='Recover(this)' type这种html、我想在它成为编辑框以后取消它的双击事件,可是这个unbind一直不起作用,
求指点指点。。。。感谢

------解决方案--------------------
jquery中的unbind只对某个事件是通过JQUERY的bind函数动态绑定的事件才有解除的效果,如果你的td的ondblclick是通过bind绑定的,则unbind有效,但你的td的ondblclick是通过html中已经赋给它双击事件了,故unbind是没用的。