解决firefox的动态事件

来源:百度文库 编辑:神马文学网 时间:2024/04/27 14:20:59
为了说明问题,举例如下:
    比如要实现用户的动态修改,初始化的页面如图所示:


点击修改触发的js代码如下:
function modifyUser(userId) {
    $("#user" + userId).find("td").eq(2).find("input").attr("disabled",false);
    $("#user" +userId).find("td").eq(4).find("input").attr("disabled", false);
   $("#user" + userId).find("td").eq(5).find("input").attr("disabled",false);
       
    $("#user" + userId).find("td").eq(7).find("a").eq(1).html("提交");
}
效果如下图所示,变为可编辑状态


再次点击“提交”后触发的代码如下,产生的效果应该是回到之前的不可编辑状态:
function updateUser(userId) {
    $("#user" + userId).find("td").eq(2).find("input").attr("disabled",true);
    $("#user" +userId).find("td").eq(4).find("input").attr("disabled", true);
    $("#user" +userId).find("td").eq(5).find("input").attr("disabled", true);
    $("#user" + userId).find("td").eq(7).find("a").eq(1).html("修改");
}
以上代码在ie下没有问题,但是在firefox下却不能如愿,解决办法如下:

// 用于修复firefox的bug
var modifyFlag = true;
function modifyUser(userId) {
    if(isFirefox=navigator.userAgent.indexOf("Firefox")>0) {
        if(modifyFlag == true) {
            $("#user" + userId).find("td").eq(2).find("input").attr("disabled", false);
            $("#user" + userId).find("td").eq(4).find("input").attr("disabled", false);
            $("#user" + userId).find("td").eq(5).find("input").attr("disabled", false);
            
            $("#user" + userId).find("td").eq(7).find("a").eq(1).html("提交");
        } else {
            modifyFlag = true;
        }
    } else {
        $("#user" + userId).find("td").eq(2).find("input").attr("disabled", false);
        $("#user" + userId).find("td").eq(4).find("input").attr("disabled", false);
        $("#user" + userId).find("td").eq(5).find("input").attr("disabled", false);
       
        $("#user" + userId).find("td").eq(7).find("a").eq(1).html("提交");
    }
}

function updateUser(userId) {
    if(isFirefox=navigator.userAgent.indexOf("Firefox")>0) {
        if(modifyFlag) {
            $("#user" + userId).find("td").eq(2).find("input").attr("disabled", true);
            $("#user" + userId).find("td").eq(4).find("input").attr("disabled", true);
            $("#user" + userId).find("td").eq(5).find("input").attr("disabled", true);
            $("#user" + userId).find("td").eq(7).find("a").eq(1).html("修改");
            modifyFlag = false;
        }
    } else {
        $("#user" + userId).find("td").eq(2).find("input").attr("disabled", true);
        $("#user" + userId).find("td").eq(4).find("input").attr("disabled", true);
        $("#user" + userId).find("td").eq(5).find("input").attr("disabled", true);
        $("#user" + userId).find("td").eq(7).find("a").eq(1).html("修改");
    }
}