Fadein与变量作为选择器

时间:2012-06-06 10:53:51

标签: javascript jquery

我正在尝试在用户上传的图片列表中进行悬停效果(在不悬停时制作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函数附加到它,它就不会

2 个答案:

答案 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");                                         
        });   
    }
});