主题: 老大。还是插入编辑器问题。帮我看看
作者: 小浪子, 发布日期: 2012-11-05 10:39:20, 浏览数: 3173

RT,

现在的问题是。比如上传了两张图片。我点第一个插入到编辑器。就会出现两张一样的第一张上传的图片。点第二个正常。。反正就是上传多个。点第一个总是插入的多张第一张上传的图片。

上次使用的是编辑器的批量上传的组件。我现在改成uploadify的了。。因为领导是用的笔记本。屏幕小。

弹出你这个批量上传组件的时候。下面的插入。在屏幕下面。没法点。让我改。没办法。就换成了uploadify...

很是郁闷。。。

function doUpLoad(SwfFilePath, BtnFilePath, Path, UpLoadId, FileId, ObjEditor) {
    var UpLoadJsonUrl;
    UpLoadJsonUrl = Path + 'Inc/UpFile.Asp?stype=1&Action=SaveLoadMain&smode=1&sdir=' + UpLoadId;
    $("#" + FileId).uploadify({
        //指定swf文件
        swf: SwfFilePath,
        //后台处理的页面
        uploader: UpLoadJsonUrl,
        checkExisting: UpLoadJsonUrl,
        fileObjName: 'imgFile',
        //按钮显示的文字
        //buttonText: '选择上传图片',
        debug: false,
        //使用图片做按钮
        buttonImage: BtnFilePath,
        //显示的高度和宽度,默认 height 30;width 120
        height: 30,
        width: 100,
        //上传文件的类型  默认为所有文件    'All Files'  ;  '*.*'
        //在浏览窗口底部的文件类型下拉菜单中显示的文本
        fileTypeDesc: '上传类型',
        //允许上传的文件后缀
        fileTypeExts: '*.gif; *.jpg; *.png',
        //发送给后台的其他参数通过formData指定
        //'formData': { 'someKey': 'someValue', 'someOtherKey': 1 },
        //上传文件页面中,你想要用来作为文件队列的元素的id, 默认为false  自动生成,  不带#
        //'queueID': 'fileQueue',
        //选择文件后自动上传
        auto: false,
        removeTimeout: 2,
        //设置为true将允许多文件上传
        multi: true,
        /// 选择文件后触发
        onSelect: function(file) {
            $('#' + file.id).find('.fileName').html('');
            $('#' + file.id).find('.data').html('文件:' + file.name + ',大小:' + GetUploadifySize(file.size));
        },
        /// 每个文件上传后更新一次进度信息
        onUploadProgress: function(file, bytesUploaded, bytesTotal, totalBytesUploaded, totalBytesTotal) {
            $('#' + file.id).find('.fileName').html('');
            $('#' + file.id).find('.data').html('文件:' + file.name + ',大小:' + GetUploadifySize(bytesTotal) + ',进度:' + GetUploadifySize(bytesUploaded));
        },
        /// 在每一个文件上传成功后触发
        onUploadSuccess: function(file, data, response) {
            var dataFile = eval("(" + data + ")");
            var StrTemp, MakePic;
            if (dataFile.error == 0) {
                $('#' + file.id).find('.data').html('文件:' + file.name + ',上传完毕');
                //
                StrTemp = '';
                if (dataFile.ThumbPic != '') {
                    MakePic = dataFile.ThumbPic;
                } else {
                    MakePic = dataFile.url;
                }
                StrTemp += '<li id="n' + dataFile.rnd + '">';
                StrTemp += '<img src="' + MakePic + '" />';
                StrTemp += '<p>';
                StrTemp += '<input name="UpImagesUrl" type="hidden" value="' + dataFile.url + '" />';
                StrTemp += '<input name="UpImagesTitle" type="text" /><br />';
                StrTemp += '<a href="javascript:void(0);" onclick="RemoveImages(\'n' + dataFile.rnd + '\',\'../\',\'' + dataFile.url + '\');return false;">删除</a> ';
                StrTemp += '<a href="javascript:void(0);" onclick="InValue(\'ImageUrl\',\'' + dataFile.url + '\');return false;">设为封面</a>';
                if (ObjEditor != '' && ObjEditor != null) {
                    StrTemp += '<br /><a href="javascript:void(0);" class="J_insertToEditor" data-pic="' + MakePic + '">插入到编辑器</a>';
                }
                StrTemp += '</p>';
                StrTemp += '</li>';
                $('#imageView').append(StrTemp);
            } else {
                $('#' + file.id).find('.data').html('文件上传:' + file.name + '上传失败,失败原因:' + dataFile.message);
            };
        },
        /// 上传文件成功后触发(每一个文件都触发一次)
        onUploadComplete: function(file) {
            $('.J_insertToEditor').click(function() {
                InEditorVal(ObjEditor, $(this).attr('data-pic'), 1);
            });
        }
    });
}

我把:

$('.J_insertToEditor').click(function() {
    InEditorVal(ObjEditor, $(this).attr('data-pic'), 1);
});

放在:onUploadSuccess、onUploadComplete都不行啊。。请老大帮忙看下。

 

忘记写调用方法了:

var editor;
$(function() {
    editor = LoadEditorMini('../', 'Content', 650, 350, 3, '', '');
    var swfFile = '/Scripts/jquery/plugins/uploadify/uploadify.swf';
    var btnFile = '/Scripts/jquery/plugins/uploadify/btn.gif';
    doUpLoad(swfFile, btnFile, '../', 3, 'upAd', editor);
});

 

作者: Roddy, 发布日期: 2012-11-05 13:14:42
明显是多绑定了事件,

$('.J_insertToEditor').click(function() {

改成

$('.J_insertToEditor').unbind('click').click(function() {

试试
回复
作者: 小浪子, 发布日期: 2012-11-05 13:25:22
回复Roddy:谢谢老大。可以了。。.咋回事啊。。
回复
发表新帖 发表回复