jquery / Javascript使用它来获取ID名称并插入并连接字符串

时间:2014-08-18 23:00:25

标签: javascript jquery html

我最终试图自动化一个功能,该功能将淡入淡出菜单中每个不同文本的图像。我可以为这样的每件事做一个函数:

$(document).ready(function(){
    $('#nd').hover(function() {
        $('#ndimg').fadeTo('fast',1)
    }, function() {
        $('#ndimg').fadeTo('fast',0);
    });
});

我正在尝试通过使用“this”并使ID字符串连接来自动执行此操作,假设我已经在相应的模式中命名了所有图像Div,以便这可以工作。

$(document).ready(function(){
    $(this).hover(function() {
        var imageid = this.id;
        $('#' + imageid +'img').fadeTo('fast',1)
    }, function() {
        $('#' + imageid +'img').fadeTo('fast',0);
    });
});

这是我的HTML文档代码段:

<div class="workmenu">
    <ul>
        <li id="nd">Nora & Danny Show</li>
        <li id ="tg"> Teagan George</li>
    </ul>

</div>
<div class="logos"
    <div id="ndimg">
        <img src = "nd.png"/>
    </div>
</div>

1 个答案:

答案 0 :(得分:0)

有两个问题:

  • 您没有将事件处理程序绑定到正确的元素
  • 您没有定义所需的所有变量

您必须将事件处理程序绑定到li元素,而不是document

$('.workmenu li').hover(...);

在mouseout事件处理程序中,未定义imageid,因为在调试代码时可以在控制台中看到。定义它:

$('.workmenu li').hover(function() {
    var imageid = this.id;
    $('#' + imageid +'img').fadeTo('fast',1)
}, function() {
    var imageid = this.id;
    $('#' + imageid +'img').fadeTo('fast',0);
});