如何确保在 HREF 触发之前下载并显示映像
How can I ensure an image is downloaded and shown before a HREF fires?
我有这个代码:
function Imagehover(obj,img){
jQuery("#"+obj.id).attr("src","<?php echo $this->baseurl ?>/templates/codecraft.gr/images/"+img+".png");
}
function Imageclick(obj,img){
jQuery("#"+obj.id).attr("src","<?php echo $this->baseurl ?>/templates/codecraft.gr/images/"+img+".png");
}
function Imageout(obj,img){
jQuery("#"+obj.id).attr("src","<?php echo $this->baseurl ?>/templates/codecraft.gr/images/"+img+".png");
}
<a href="<?php echo JURI::root(); ?><?php echo $langsefs->sef;?>"><img id="<?php echo $langsefs->sef;?>flag" style="height: 40px;margin-right: 10px;width: 47px;" src="<?php echo JURI::root(); ?>/templates/codecraft.gr/images/<?php echo $langsefs->sef; ?>_flag.png" onclick="Imageclick(this,'<?php echo $langsefs->sef; ?>_flag_pressed')" onmouseout="Imageout(this,'<?php echo $langsefs->sef; ?>_flag')" onmouseover="Imagehover(this,'<?php echo $langsefs->sef; ?>_flag_over')" alt="<?php echo $langsefs->sef; ?>"/></a>
但是当我单击该标志时,图像就会消失,然后 href 的重定向将执行到新页面。当我删除图像的点击事件时
function Imageclick(obj,img){
//jQuery("#"+obj.id).attr("src","<?php echo $this->baseurl ?>/templates/codecraft.gr/images/"+img+".png");
}
图像不会消失。所以我认为 onclick 事件触发并尝试从服务器获取图像,但由于 href 也被执行,图像没有机会进入用户的浏览器,因为页面重定向已经开始。
如何确保将图像下载到用户的浏览器,然后进行重定向,而无需删除 href 属性?
您可以使用
event.preventDefault()
:
如果调用此方法,则不会触发事件的默认操作。
$('a').click(function(e){
e.preventDefault();
var href = $(this).attr('href');
$("#"+obj.id).attr("src","<?php echo $this->baseurl ?>/templates/codecraft.gr/images/"+img+".png").promise().done(function(){
window.location = href;
})
})
从事件处理程序返回 false 以防止默认行为。 如果您希望页面地址在单词后立即更改,则可能需要在替换图像后在每个处理程序中放置位置重定向。
相关文章:
- 如何使jQuery中的悬停函数单独应用于数据库映像
- 无法在Safari中加载跨源映像(来自CloudFront)
- 有没有一种方法可以从chrome'的存储映像
- 如何在不必维护每个文件的两个版本的情况下,将通用JavaScript和映像部署到两个不同的EAR
- 在使用 Django 静态文件时动态设置映像时,只有绝对路径才能与 jquery 一起使用
- 获取我的数组中的每个 ID 映像 src
- 映像选取器在初始化时预选项
- 循环映像 IE7 问题
- 本地映像对象未在Javascript中正确初始化
- PHP抓取没有扩展的远程映像
- 如何在ASP.NET Response.BinaryWrite生成的Javascript中处理字节数组映像
- 如何确保在 HREF 触发之前下载并显示映像
- 使用 Node.js 下载多个映像
- 如何使用科尔多瓦文件传输下载 base 64 映像
- 对下载的 S3 映像的 URI 进行编码
- 如何通过右键单击另存为方法下载图像时自动重命名远程映像名称
- Base64映像下载:损坏的文件
- 内存泄漏-定期下载映像
- React Native:从Firebase Storage下载映像
- 下载 base64 编码映像 IE9