我正在尝试在用户上传的图片列表中进行悬停效果(在不悬停时制作div fadein然后输出)。因为当我选择其中一张图片时,我不想让我的所有图片都悬停,我已经让PHP回显了一个divs的变量。
在我下面的jQuery代码中,我得到一个循环,其中我从1到16(这是我的图库中的图片数量)计数,并且选择器具有div的名称。
PHP部分:
echo "<div class='cell1' id=sovs$sovs style='overflow: hidden; position: relative;'>
<a href=image.php?p=$presentnew->upload_id>
<img style='min-width: 177px; min-height: 177px;' src='content/$presentnew->user_name/thumbs/medium_$presentnew->file_name'>
<div class='celltext'>
<b style='color: white; line-height: 28px; margin-left: 5px; font-size: 10pt;'><a style='color: white;' href='profil.php?bruger=$presentnew->user_name'>$presentnew->user_name</a></b>
</div>
</a>
</div>";
$sovs++;
}
Javascript Part:
for (var h = 1; h <= 16; h++) {
$(function() {
$("#sovs" + h).hover(
function() {
alert("g");
});
});
}
上面的代码只是一个测试,我希望我的div响应函数。
问题是他们不这样做。如果我将选择器的名称更改为$('#sovs1')
,则会响应。
有人可以告诉我我做错了吗?
$(document).ready(function(){
for(var h=1; h<=16; h++){
$("#sovs"+h).mouseover(function(){
alert("G");
});
}
});
可以工作,但是如果我将fadeIn函数附加到它,它就不会
答案 0 :(得分:1)
你需要提供更多信息才能得到答案,这只是一件重要的事情:
for (var h = 1; h <= 16; h++) {
$(function() { // <======= This will create 16! dom ready event handlers
$("#sovs" + h).hover(
function() {
alert("g");
});
});
}
将其移至外部范围(如果需要的话......)
$(function() {
for (var h = 1; h <= 16; h++) {
$("#sovs" + h).hover(function() {
alert("g");
});
}
}
尝试此代码,以查看问题是否与委托事件VS直接事件有关。
$(function() {
for (var h = 1; h <= 16; h++) {
$('body').on('mousemove', "#sovs" + h, function() {
alert('g');
});
}
}
答案 1 :(得分:0)
$(document).ready(function() {
for(var h=1; h<=16; h++) {
$("#sovs"+h).live('hover', function() {
alert("g");
});
}
});