首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Jquery中预览图片?

问如何在Jquery中预览图片?
EN

Stack Overflow用户
提问于 2011-09-19 18:29:41
回答 3查看 7K关注 0票数 4

我有一些html元素:

代码语言:javascript
复制
<img id="preview_image" alt="" src="" width="100px" height="120px"> 

<br>


<input type="file" name="user_image" id="user_image" onchange="preview(this);">

下面是js:

代码语言:javascript
复制
function preview(input) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();

        reader.onload = function (e) {
            $('#preview_image')
                .attr('src', e.target.result)
                .width(100)
                .height(120);
        };

        reader.readAsDataURL(input.files[0]);
    }
}

当我选择一个图像时,它将被立即预览。

我现在想要的是:首先,选择一个图像(但不是现在预览),然后单击一个超链接,该图像将被显示。超链接如下所示:

代码语言:javascript
复制
<a href="javascript:void(0)" onclick="preview2()">Click to preview</a>


preview2 = function(){
    //what should I do here (using Jquery)
}

非常感谢!

EN

回答 3

Stack Overflow用户

发布于 2011-09-19 18:38:36

首先,使用onclick是一种非常糟糕的做法。相反,使用jQuery的事件绑定。无论哪种方式,下面的代码都应该能做到这一点:

代码语言:javascript
复制
<a id="previewButton">Click here to preview</a> <!-- initially, the button is disabled -->

<script type="text/javascript">
function preview (input)
{
    $("#previewButton").hide (); // don't show preview until file loaded
    // implementation code

    reader.onload = function (e) {
        $("#previewButton").show () // show the button
                           .click (function() {
            $("#preview_image").attr () // your old loader code
        }
    }
}
票数 1
EN

Stack Overflow用户

发布于 2013-10-24 19:22:23

尝尝这个

代码语言:javascript
复制
<div class="upload-preview">
  <img />
</div>
<input class="file" name="logo" type="file">

$(document).ready(function(){
var preview = $(".upload-preview img");

$(".file").change(function(event){
   var input = $(event.currentTarget);
   var file = input[0].files[0];
   var reader = new FileReader();
   reader.onload = function(e){
       image_base64 = e.target.result;
       preview.attr("src", image_base64);
   };
   reader.readAsDataURL(file);
  });
});

查看这个fiddle http://jsfiddle.net/RxvLn/3/

票数 0
EN

Stack Overflow用户

发布于 2020-11-26 13:05:31

让我们试试...

使用jquery进行图像预览。

​

代码语言:javascript
复制
function readURL(input) {  
   $('.preview').show();
  $('#blah').hide();
  $('.preview').after('<img id="blah" src="#" alt="your image" style="display:none;"/>');
  if (input.files && input.files[0]) {
    var reader = new FileReader();
    reader.onload = function (e) {
      $('#blah')
      .attr('src', e.target.result)
      .width(150)
      .height(200);
    };
    reader.readAsDataURL(input.files[0]);
  }
}

function getPreview(){
  $('.preview').hide();
  $('#blah').show();
}
代码语言:javascript
复制
article, aside, figure, footer, header, hgroup, 
  menu, nav, section {
  display: block;
 }
 div{
 margin:20px;
 }
.preview{
 color:#FFF;
    background:#0066CC;
    padding:10px;
    text-decoration:none;
    border:1px solid #0157ad;
    border-radius:3px;
}
代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<link class="jsbin" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script class="jsbin" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.0/jquery-ui.min.js"></script>
<meta charset=utf-8 />
<title>Preview Image</title>

</head>
<body>
   <div>
      <input type='file' onchange="readURL(this);" />
   </div>
  <div>
  <a href="#" class="preview" onclick="getPreview();">Preview</a><br/>   
    </div>
</body>
</html>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7469504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档