jquery change事件只走一次解决办法【转】

这个问题并不是由change事件失效造成的,而是ajaxFileUpload插件造成的,它会把原来的file元素替换成新的file元素,所以之前绑定的change事件就失效了,需要重新绑定一下

     $('#uploaderInput').on("change",function() {
            $.ajaxFileUpload({
                url : '/upload/imageUpload',   //提交的路径
                secureuri : false, // 是否启用安全提交,默认为false
                fileElementId : 'uploaderInput', // file控件id
                dataType : 'json',
                data : {
                    fileName : $('#uploaderInput').val()   //传递参数,用于解析出文件名
                }, // 键:值,传递文件名
                success : function(data, status) {
                    if (data.error == 0) {
                        var src = data.src;
                        $('#uploaderFiles').append("");
                        $("#uploaderInput").val("");
                        // 存储已上传图片地址
                        var oldSrc = $('.pictureSrc').val();
                        var newSrc = "";
                        if (oldSrc != "")
                            newSrc = oldSrc + "," + src;
                        else
                            newSrc = src;

                        $('.pictureSrc').val(newSrc);   //保存路径
                    } else {
                        alert(data.message);
                    }
                },
                error : function(data, status) {
                    alert(data.message);
                }
            });
        });


jquery绑定事件只走一次,找了好多办法都不行
今天我来把这个神秘的问题给解决一下,希望能帮助大家
$(document).off(‘change’,’#logo_name’).on(‘change’,’#logo_name’,function(){
alert(“ok”);
});这么去写,就把change执行一次给解决掉了,因为on是绑定了结点,jquery绑定结点的时候只需绑定一次就行了。不能重复绑定,off是将结点移除,移除完之后在重新绑定,这样就可以解决了change执行一次的问题

    $(document).off('change','#uploaderInput').on('change','#uploaderInput',function(){
        $.ajaxFileUpload({
            url : '/upload/imageUpload',   //提交的路径
            secureuri : false, // 是否启用安全提交,默认为false
            fileElementId : 'uploaderInput', // file控件id
            dataType : 'json',
            data : {
                fileName : $('#uploaderInput').val()   //传递参数,用于解析出文件名
            }, // 键:值,传递文件名
            success : function(data, status) {
                if (data.error == 0) {
                    var src = data.src;
                    $('#uploaderFiles').append("");
                    $("#uploaderInput").val("");
                    // 存储已上传图片地址
                    var oldSrc = $('.pictureSrc').val();
                    var newSrc = "";
                    if (oldSrc != "")
                        newSrc = oldSrc + "," + src;
                    else
                        newSrc = src;

                    $('.pictureSrc').val(newSrc);   //保存路径
                } else {
                    alert(data.message);
                }
            },
            error : function(data, status) {
                alert(data.message);
            }
        });
    });

你可能感兴趣的:(js)