首先,我是 jQuery 或 AJAX 的初学者。
我在网页上有大约 50 多个链接,每个链接都有一个 div#popup,其中包含一个表格和一个 img。这意味着当页面加载时大约有 50 张图片正在加载,这会大大降低网站速度。
所以我想知道是否有一种方法可以让鼠标悬停在链接上时才加载图片?\
这是我正在使用的代码和脚本。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>jQuery Popup Div on hover Test</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
var moveLeft = 20;
var moveDown = 10;
$('a#trigger').hover(function(e) {
$('div#pop-up').show();
}, function() {
$('div#pop-up').hide();
});
$('a#trigger').mousemove(function(e) {
$("div#pop-up").css('top', e.pageY + moveDown).css('left', e.pageX + moveLeft);
});
});
</script>
<style type="text/css">
.wpm_pag.mng_lts_chp.grp .det a.ttl{
color: #0000ff;
font-size:16px;
line-height:12px;
height:14px;
display:block;
padding:0 0 2px 0
}
.wpm_pag.mng_lts_chp.grp .det div#pop-up table tr td img{
border: 1px solid #e74f25;
}
.wpm_pag.mng_lts_chp.grp .det div#pop-up table{
margin:0;
background-color:#656565;
}
.wpm_pag.mng_lts_chp.grp .det div#pop-up table tr.firstR{
background-color:black;
height: 30px;
font-size: 120%;
}
.wpm_pag.mng_lts_chp.grp .det div#pop-up table tr td.otherRow{
height: 20px;
}
.wpm_pag.mng_lts_chp.grp .det div#pop-up table tr td.otherRow b{
color: #3C3C3C;
}
/* Popup CSS */
.wpm_pag.mng_lts_chp.grp .det div#pop-up {
display: none;
position: absolute;
padding: 0px 5px 5px 5px;
background-color: #000;
color: #FFF;
border: 1px solid #1a1a1a;
font-size: 110%;
font-family:"Comic Sans MS", cursive, sans-serif;
}
</style>
</head>
<body>
<div class="wpm_pag mng_lts_chp grp">
<div class="det">
<p><a href="#" class="ttl" id="trigger">this link</a></p>
<!-- HIDDEN / POP-UP DIV -->
<div id="pop-up">
<table width="650px" cellspacing="0" cellpadding="2px">
<tr class="firstR">
<td colspan="3">Nenee! Ane Tokitoki Kanojo</td>
<td style="text-align: right;" width="25%">Rating</td>
</tr>
<tr>
<td width="200px" rowspan="4"><img height="200" width="200" src ="http://gooddealstore.us/icon/test.jpg" alt="xxx" /></td> /** php echo url
<td class="otherRow" colspan="3"></td>
</tr>
<tr>
<td class="otherRow"><b>Release:</b></td> /** php
<td class="otherRow"><b>Author:</b></td> echo
<td class="otherRow"><b>Artist:</b></td> **/
</tr>
<tr>
<td class="otherRow" colspan="3"><b>Genres:</b></td>
</tr>
<tr>
<td style="vertical-align: top;" colspan="3"></td>
</tr>
</table>
</div>
</div>
</body>
</html>
最佳答案
我会给每个 anchor 标记一个 url 并制作这样的标记 jsfiddle
HTML:
<ul>
<li><a href="http://placehold.it/100x100" class="imageLink">Image 1</a></li>
<li><a href="http://placehold.it/100x110" class="imageLink">Image 2</a></li>
<li><a href="http://placehold.it/100x90" class="imageLink">Image 3</a></li>
</ul>
<div id="imageContainer">
</div>
js
var l = $(".imageLink").click(function(e) {
e.preventDefault();
}).hover(function(e) {
var imageUrl = $(this).attr('href'),
container = $('#imageContainer').show(),
image = $("#imageContainer > img[src='" + imageUrl + "']");
if(image.length > 0) {
image.show();
} else {
container.append("<img src='" + imageUrl + "' />");
}
}, function() {
$('#imageContainer, #imageContainer > img').hide();
});
我所做的是使用 anchor 中的 href
将图像添加到 dom。如果该元素已经存在(我使用它们的 src
检查 div 中的图像)我只显示图像。如果我们将这个想法应用到您的示例中,我会给 td
元素一个 imageContainer
的 id
,以便将图像元素添加到那里。
关于jquery - 仅在出现弹出窗口时加载 img,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8811665/