0

这个问题与其他问题有点不同。我遇到了与jQuery AjaxUpload 类似的问题,必须单击两次按钮吗?但我设法用我的解决方法解决了这个问题。按钮来得很完美。但现在的问题是,当我从按钮的顶部或左侧拖动鼠标后单击该按钮时,它不起作用,但如果我从另一侧拖动鼠标,它工作正常。简而言之,当从顶部到达该按钮时,按钮会悬停,而不是 ajax 上传创建的隐藏文件选择器。

而不是从顶部将鼠标放在该按钮上

从顶部或左侧移动该按钮时

在第一张图片中,我从按钮的一侧拿了鼠标指针,然后我可以选择文件。但如其他图像所示,我从按钮顶部取出鼠标指针,按钮悬停。

这是我的按钮代码:

<input type="button" value="Upload Image" class="imgUploadBtn" />

我的 JS 片段:

function uploadAndGetImgUrl(tsource,status) {
    new AjaxUpload(tsource,{
        action: 'imageUpload.php',
        name: 'uploadfile',
        data: {},
        onSubmit: function(file, ext){
                if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){
                    // extension is not allowed
                    status.text('Only Images are Allowed');
                    return false;
                }
                status.text('Uploading...');
        },
        onComplete: function(file, response){
            //On completion clear the status
            status.text('');
            $('#idSpclImgLink').val(response);
            $('#idImgLink').val(response);
        }
    });
}

$(document).live("imgAttach",function() {
    alert("Want something Added");
    uploadAndGetImgUrl($('.imgUploadBtn'),$('#idStatus'));
});

我检查了 ajaxupload.3.5.js,但发现它在悬停时做了一些处理,并使用左和上偏移来保持悬停效果。但我还不能解决这个问题。知道为什么会这样吗?

PS:我用铬。我还检查了 Firefox 和相同的行为。

4

2 回答 2

1

打开ajaxupload的插件文件..

在定义 mousemove 事件处理程序的函数中,找到注释: // mouse left the button

将下一行更新为 over = true;

于 2012-09-17T08:34:58.037 回答
0

不完全是一般问题的解决方案,但就我而言,我只是更改了 2 行并适用于我的场景。

将行号 368 和 369 更改为

if ((c.x >= box.left-5) && (c.x <= box.right) && 
        (c.y >= box.top-10) && (c.y <= box.bottom)){    

它显然会起作用。

于 2012-09-20T05:21:52.203 回答