Javascript 如何优化我的菜单小Jquery代码?

Javascript 如何优化我的菜单小Jquery代码?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有3个隐藏的div(#carta1、#carta2和#carta3)(显示:无),每个div都有不同的信息。当用户浏览导航栏时,会显示相应的div。它工作正常,但我认为代码太多了。。有没有办法使它更简单(例如只使用一个函数) 谢谢你的帮助 以下是我的Jquery代码: $("#frueh, #carta1").hover(function (e) { e.preventDefault(); $("#carta1").stop().fadeIn();


我有3个隐藏的div(#carta1、#carta2和#carta3)(显示:无),每个div都有不同的信息。当用户浏览导航栏时,会显示相应的div。
它工作正常,但我认为代码太多了。。有没有办法使它更简单(例如只使用一个函数)

谢谢你的帮助

以下是我的Jquery代码:

$("#frueh, #carta1").hover(function (e) {
        e.preventDefault();
        $("#carta1").stop().fadeIn();   
     }, 
        function(){
        $("#carta1").stop().fadeOut(750);
});



$("#sup, #carta2").hover(function (e) {
        e.preventDefault();
        $("#carta2").stop().fadeIn(); 
     }, 
        function(){
        $("#carta2").stop().fadeOut(500);
});


$("#sal, #carta3").hover(function (e) {
        e.preventDefault();
        $("#carta3").stop().fadeIn();   
     }, 
        function(){
        $("#carta3").stop().fadeOut(750);
});
下面是Html列表:

<ul id="speise">
                <li><a id="frueh"  href="">Frühstück</a></li>
                <li><a id="sup"    href="">Suppen</a></li>
                <li><a id="sal"    href="">Salate</a></li>
</ul>

每当您重复这样的代码时,通常表示您可以将其放入函数中

function registerHoverListener(triggerElementId, displayElementId, fadeoutTime) {
    var fadeIn = function(e) {
        e.preventDefault();
        $(displayElementId).stop().fadeIn();
    };

    var fadeOut = function() {
        $(displayElementId).stop().fadeOut(fadeoutTime);
    };

    $(triggerElementId, displayElementId).hover(fadeIn, fadeOut);
});

registerHoverListener("#sup, #carta2", 500);
registerHoverListener("#sal, #carta3", 750);
registerHoverListener("#frueh, #carta1", 750);

如果在所有情况下仅希望淡出时间为750,则可以删除淡出时间参数。我不知道那500是不是一个打字错误。

奥斯汀的答案很好,另一个选择是针对你的ul孩子,然后从活动中获取id。 比如:

$("#speise > li > a").hover(function (e) {
    e.preventDefault();
    alert(e.target.id);
 });
然后,您可以根据
#carta1
#carta2
#carta3
的位置,进一步制作数据标记或以子对象为目标来执行所需的操作


同样,奥斯汀的答案更容易实现,更容易阅读,值得思考。

你应该尽量避免悬停,因为它不存在于触摸屏设备上。
\carta1
\carta2
\carta3
?不用担心:)多关注一段代码总是有帮助的。