Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 预览popover上的图像,未正确显示_Javascript_Jquery_Asp.net Mvc_Twitter Bootstrap_Popover - Fatal编程技术网

Javascript 预览popover上的图像,未正确显示

Javascript 预览popover上的图像,未正确显示,javascript,jquery,asp.net-mvc,twitter-bootstrap,popover,Javascript,Jquery,Asp.net Mvc,Twitter Bootstrap,Popover,有人能帮我做popover图像预览吗?问题是悬停时图像预览无法显示/更新所选图像 这是我的字段,当鼠标悬停时,选定的文件图像应显示在popover上。 正如你在下面看到的,当我在第一张图片上悬停时,它给了我正确的图片 但是,当我悬停到下一张图片时,它仍然会显示上一张图片,而下一张图片应该是沙漠图片 但是,当我再次悬停它时,它会给我正确的输出 这是我的popover代码 $('.example-popover').popover({ trigger: 'hov

有人能帮我做popover图像预览吗?问题是悬停时图像预览无法显示/更新所选图像

这是我的字段,当鼠标悬停时,选定的文件图像应显示在popover上。

正如你在下面看到的,当我在第一张图片上悬停时,它给了我正确的图片

但是,当我悬停到下一张图片时,它仍然会显示上一张图片,而下一张图片应该是沙漠图片

但是,当我再次悬停它时,它会给我正确的输出

这是我的popover代码

$('.example-popover').popover({
                trigger: 'hover',
                container: 'body',
                html: true,
                placement:'bottom',
                content: function () {
                    var x = $(this).closest('div').find('#RawImage');
                    if (x[0].files && x[0].files[0]) {
                        var reader = new FileReader();

                        reader.onload = function (e) {
                            $('#img-prview').attr('src', e.target.result);
                        }

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

                    return $('.img-container').html()
                }

            })
这是我的HTML

<div class="img-container hidden">
        <img id="img-prview" src="#" style="width:50%"/>
    </div>
    <div class="form-group has-feedback">
        <div class="row">
            <div class="col-md-1">
                Image
            </div>
            <div class="col-md-6">
                @Html.TextBoxFor(m => m.RawImage, new { Class = "form-control", Placeholder = "Image",type="file" })
                @Html.ValidationMessageFor(m => m.RawImage, null, new { Class = "text-danger" })
                <a href="#"><i class="fa fa-image example-popover"></i></a>
            </div>
        </div>
    </div>
    <div class="form-group has-feedback">
        <div class="row">
            <div class="col-md-1">
                Image
            </div>
            <div class="col-md-6">
                @Html.TextBoxFor(m => m.RawImage, new { Class = "form-control", Placeholder = "Image",type="file" })
                @Html.ValidationMessageFor(m => m.RawImage, null, new { Class = "text-danger" })
                <a href="#"><i class="fa fa-image example-popover"></i></a>
            </div>
        </div>
    </div>

形象
@TextBoxFor(m=>m.RawImage,新的{Class=“form control”,Placeholder=“Image”,type=“file”})
@Html.ValidationMessageFor(m=>m.RawImage,null,新{Class=“text danger”})
形象
@TextBoxFor(m=>m.RawImage,新的{Class=“form control”,Placeholder=“Image”,type=“file”})
@Html.ValidationMessageFor(m=>m.RawImage,null,新{Class=“text danger”})

我希望你能告诉我如何在popover上预览图像。谢谢

我已经找到了一个解决方案,但是有一个延迟

我认为问题在于reader.onload,它在更改img src之前首先返回img容器html

这就是我所做的

$('.example-popover').popover({
                trigger: 'hover',
                container: 'body',
                html: true,
                placement:'bottom',
                content: function () {
                    var x = $(this).closest('div').find('#RawImage');
                    var imgByte = '';
                    if (x[0].files && x[0].files[0]) {
                        var reader = new FileReader();

                        reader.onload = function (e) {
                            $('#previmg').attr('src', e.target.result);
                        }

                        reader.readAsDataURL(x[0].files[0]);
                    }
                    return '<img id="previmg" src="#" style="width:100%"/>'
                }
            }) 
$('.example-popover').popover({
触发器:“悬停”,
容器:'主体',
是的,
位置:'底部',
内容:功能(){
var x=$(this.nexist('div')。find('#RawImage');
var imgByte='';
如果(x[0]。文件(&x[0]。文件[0]){
var reader=new FileReader();
reader.onload=函数(e){
$('previmg').attr('src',e.target.result);
}
reader.readAsDataURL(x[0].files[0]);
}
返回“”
}
}) 

谢谢大家!希望能为大家提供参考

如果html无效(两个文本框都会生成
id=“RawImage”
),能否生成一个工作代码段。但是还有很多其他的问题,因为你为同一个属性生成了两个表单输入(第二个没有验证等等)Hi@Redo你能检查一下@RE0824C吗popover不是triggering@Redo试试这个