Javascript 如何防止在所有脚本完全加载之前单击图像
我正在开发一个asp.net mvc web应用程序,其中包含一个与此类似的web模板 现在我面临的问题是:-Javascript 如何防止在所有脚本完全加载之前单击图像,javascript,jquery,html,razor,asp.net-mvc-5,Javascript,Jquery,Html,Razor,Asp.net Mvc 5,我正在开发一个asp.net mvc web应用程序,其中包含一个与此类似的web模板 现在我面临的问题是:- 假设一个用户访问图像库,当页面加载时,他点击一个图像。然后,这将导致图像在新窗口中单独显示,而不是在jQuery滑块中显示。如果他等到页面完全加载,那么就不会有任何问题 我不能理解的是,我在呈现页面主体之前引用了所有脚本。因此,这意味着图像库在浏览器中不可用,除非所有脚本都已完全加载,但情况并非如此 下面是我的_布局视图的样子,在这里我引用了Renderbody()之前的所有脚本:-
Renderbody()
之前的所有脚本:-
@视图包。标题
@style.Render(“~/Content/css”)
@Styles.Render(“~/Content/Customcss”)
@Scripts.Render(“~/bundles/modernizer”)
@Scripts.Render(“~/bundles/jquery”)
@RenderSection(“脚本”,必需:false)
@RenderBody()
以下是导致问题的视图:-
<header id="header" class="headerpages">
<div class="bgpattern"></div>
@Html.Partial("~/Views/Shared/Navigation.cshtml")
</header>
<div id="content">
<!--==============================row7=================================-->
<div class="row_7">
<div class="container">
<h2 style="text-align:center" >Project</h2>
<br/>
<div class="row">
<h2 class="padbot1">
Villa
</h2>
<ul class="listgall">
<li class="col-lg-4 col-md-4 col-sm-6 col-xs-6 colgal customBoarder">
<h5 class="customh5">Villa</h5>
<figure><a href="~/img/T/sbig.jpg" class="thumb"><img src="~/img/T/a.jpg" alt=""><span><strong>Project name:</strong><em>Villa</em><img src="~/img/T/searchsmall.png" alt=""></span></a><a href="@Url.Action("OurProjects", "Home", new {name="a" })" class="btn btn1">Read More about this vella<br /> </a></figure>
</li>
</ul>
<hr style="border-width: 3px 0 0;"/>
<h2 class="padbot1">
Triplex</h2>
<ul class="listgall">
<li class="col-lg-4 col-md-4 col-sm-6 col-xs-6 colgal customBoarder">
<h5 class="customh5">The TROJANA (Macedonian Oak) Triplex</h5>
<figure><a href="~/img/T/trojana_big.jpg" class="thumb"><img src="~/img/T/trojana.jpg" alt=""><span><strong>Project name:</strong><em>The TROJANA (Macedonian Oak) Triplex</em><img src="~/img/T/searchsmall.png" alt=""></span></a><a href="@Url.Action("OurProjects", "Home", new {name="Trojana" })" class="btn btn1">Read More</a></figure>
</li>
</ul>
<hr style="border-width: 3px 0 0;" />
@Html.Partial("~/Views/Shared/_table.cshtml")
</div>
<div class="row">
<div class="col-lg-12 col-md-12 col-sm-12 gmap">
<div class="map">
<iframe src="https://www.google.com/maps/embed/v1/place?key=A...."></iframe></div>
</div>
</div>
</div>
</div>
</div>
@section scripts {
<script>
$(window).load(function () {
//form1
$('#form1').sForm({
ownerEmail: '#',
sitename: 'sitename.link'
})
//thumb
// Initialize the gallery
$('.thumb').touchTouch();
});
</script>
<style>
#prevArrow, #nextArrow {
display: none;
}
</style>
@Html.Partial(“~/Views/Shared/Navigation.cshtml”)
项目
别墅
-
别墅
三胞胎
-
特洛伊(马其顿橡树)三倍体
@Html.Partial(“~/Views/Shared/_table.cshtml”)
@节脚本{
$(窗口)。加载(函数(){
//表格1
$('#form1').sForm({
所有者邮件:“#”,
sitename:“sitename.link”
})
//拇指
//初始化库
$('.thumb').touchTouch();
});
#上箭头,下箭头{
显示:无;
}
那么,有人能告诉我如何解决这个问题吗?为什么浏览器仍在加载脚本时,图像库会在浏览器中可用?我知道这个问题已经解决了,但对于访问这里的人来说,以防其他人遇到同样的问题并在这里找到它。 如评论所述 使用 而不是
$(window).load(function() {
// executes when complete page is fully loaded, including all frames, objects and images
alert("window is loaded");
});
下面的代码阻止用户在页面完全加载之前单击文档(图像或任何其他内容)。添加$(文档)。单击(false);
到$(文档)。准备好函数和$(文档)。单击(true)
到$(窗口)。加载函数
$(document).ready(function() {
$(document).click(false);
});
$(window).load( function(){
$(document).click(true);
});
@aimme你能告诉我你的意思吗?@aimme我把window.load改为document.ready,似乎它解决了问题,,不知道为什么…@aimme我真的很困惑到底发生了什么…现在使用window.load时,除非整个页面都加载了,否则脚本不应该启动,那么为什么在加载页面的同时单击一个图像,图像会在一段时间内打开呢新建窗口..但这是不正确的,因为窗口加载将在document.ready之后,而不是在它之前!!!请检查此项,,,window.onload稍后会触发(或者在最坏/失败的情况下同时触发)@johnG表示我很高兴,也不厌倦帮助或与他人交谈:)但如果我将window.load替换为document.ready,它将根据我的测试解决问题。。
$(window).load(function() {
// executes when complete page is fully loaded, including all frames, objects and images
alert("window is loaded");
});
$(document).ready(function() {
$(document).click(false);
});
$(window).load( function(){
$(document).click(true);
});