Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript for循环中的悬停效果_Javascript - Fatal编程技术网

Javascript for循环中的悬停效果

Javascript for循环中的悬停效果,javascript,Javascript,以下是HTML: <div class=column1of4> <a rel="Appendix" href="images/watermarks/watermark_pic1.jpg" title="Bottle in the mirror"> <img src="images/250-width/pic1.jpg" alt="" width="250px" height="250px"

以下是HTML:

<div class=column1of4>
    <a rel="Appendix" href="images/watermarks/watermark_pic1.jpg" 
       title="Bottle in the  mirror">
        <img src="images/250-width/pic1.jpg" 
             alt="" width="250px" height="250px"
             id="Bottleinthemirrorpic">
    </a>
    <a rel="Appendix" href="images/watermarks/watermark_pic1.jpg" 
       title="Bottle in the mirror">
        <div id="Bottleinthemirror" class="spanlink">
            <p>Bottle in the mirror</p>
        </div>
    </a>
</div>

嵌套循环是不必要的,因为数组是一维的。您可以尝试以下方法:

var texts = ['#Bottleinthemirror'],
    pictures = ['#Bottleinthemirrorpic'],
    i, j, curText, curPicture, generateHandlers;

generateHandlers = function (text, picture) {
    $(text).hide();
    $(text + "," + picture).hover(function () {
        //in
        $(text).show();
    },function () {
        //out
        $(text).hide();
    });
};

for (i = 0, j = texts.length; i < j; i++) {
    curText = texts[i];
    curPicture = pictures[i];
    generateHandlers(curText, curPicture);
}
然后像这样循环:

var curText, curPicture;
for (curText in textPics) {
    curPicture = textPics[curText];
    generateHandlers(curText, curPicture);
}

我不明白为什么你有一个
for
循环,还有一个
$。每个
循环我假设你实际上已经加载了jQuery@user216485我仍然不认为两者都有必要。你只需要有一个循环。如果有帮助的话,我会这样做:@user216485如果某个东西能工作,那么就加载jQuery。为什么要用这么旧的版本?jQuery现在在v1.9上。x@user216485不要盲目地升级到最新版本。自1.7版以来,有许多更改,包括不推荐使用的功能和已删除的功能。所以试一下,阅读文档,确保一切正常。如果有帮助的话,有一个jquerymigrate插件可以恢复删除的功能并在控制台中警告您
var texts = ['#Bottleinthemirror'],
    pictures = ['#Bottleinthemirrorpic'],
    i, j, curText, curPicture, generateHandlers;

generateHandlers = function (text, picture) {
    $(text).hide();
    $(text + "," + picture).hover(function () {
        //in
        $(text).show();
    },function () {
        //out
        $(text).hide();
    });
};

for (i = 0, j = texts.length; i < j; i++) {
    curText = texts[i];
    curPicture = pictures[i];
    generateHandlers(curText, curPicture);
}
var textPics = {
    '#Bottleinthemirror': '#Bottleinthemirrorpic'
};
var curText, curPicture;
for (curText in textPics) {
    curPicture = textPics[curText];
    generateHandlers(curText, curPicture);
}