2011-05-09 56 views
0

在Firefox中,当您选择文本字段(我使用的是Ubuntu 11.04)时,我的光标会变成您看到的那个。jQuery代码行使我的光标变成'文本光标'?

的问题似乎是以下(因为光标返回到默认或指针,如果我评论的话)的注释行:

<script type="text/javascript" > 
    $(function(){ 
     var btnUpload=$('#upload'); 
     var status=$('#logo-upload-status'); 
     new AjaxUpload(btnUpload, { 
      action: '<?php bloginfo('template_directory'); ?>/upload-file.php', 
      name: 'uploadfile', 
      /* this is the problem -> onSubmit: function(file, ext){ */ 
       if (! (ext && /^(jpg|png|jpeg|gif)$/.test(ext))){ 
        status.text('Only JPG, PNG or GIF files are allowed'); 
        return false; 
       } 
       status.text('Uploading...'); 
      } 
      onComplete: function(file, response){ 
       //On completion clear the status 
       status.text(''); 
       //Add uploaded file to list 
       if(response==="success"){ 
        $('<li></li>').appendTo('#files').html('<img src="<?php bloginfo('template_directory'); ?>/images/'+file+'" alt="" /><br />'+file).addClass('success'); 
        $('#<?php echo $logo_image; ?>').val(file); 
       } else{ 
        $('<li></li>').appendTo('#files').text(file).addClass('error'); 
       } 
      } 
     }); 

    }); 
</script> 

按钮:

<input type="button" class="background_pattern_button" id="upload" value="Choose Logo" /> 

有什么建议?

编辑:

Firebug的检查(出于某种原因,光标看起来正常的截图):

enter image description here

+0

你所有的JS会打破。你的意思是你评论了整个方法吗? – JohnP 2011-05-09 08:21:10

+0

你也在'onComplete'之前缺少一个''',但是如果你注释那一行,代码就会被破坏。 – DarthJDG 2011-05-09 08:22:50

+0

@JohnP是的,我认为问题是整个'onSubmit'函数。 – alexchenco 2011-05-09 08:27:00

回答

1

阿贾克斯上传使用的隐藏<input type="file" />的方法这反过来又可以让你有一个个性化的“浏览计算机”按钮,将打开一个文件等等等等等等您面临的问题是,你不能改变光标的<input type="file" />

你的理由不得不忍受它,或者用css将输入推到左边,这样按钮区域会给出默认光标而不是文本。

而且你输入应该有透明度,这使得它无形的肉眼却是有没有少[上CSS]如果评论只是1号线

+0

所以这个问题是不可能解决的? – alexchenco 2011-05-09 09:41:49

+0

在我看来,是的,因为浏览器已将此视为安全风险,因为许多人会误导(非电脑文字),我认为这很愚蠢,如果他们不知道选择文件窗口,允许您上传东西,他们不知道鼠标光标差异大声笑:) – Val 2011-05-09 09:58:13