потеря наведения курсора css с помощью jquery

StackOverflow https://stackoverflow.com/questions/1053145

  •  20-08-2019
  •  | 
  •  

Вопрос

Наведение курсора Css работает корректно до тех пор, пока не будет нажат один из пунктов меню.Я полагаю, что проблема началась с того, что я добавил эту строку

$("#buttons li a:not(a." + target + ")").css("background-position","0 0");

CSS - файл

#buttons {float:left;}
#buttons ul {list-style-type:none;cursor:pointer;overflow:hidden;}
#buttons ul  li {height:195px;width:40px;float:left}
#buttons a {display:block;height:195px;width:40px;border:none;cursor:pointer;}
#buttons a.settings:hover, #buttons a.duels:hover, #buttons a.messages:hover {background-position: -40px 0;}
#buttons a.settings {background:url(accountsettings.png)}
#buttons a.something {background:url(accountsomething.png)}
#buttons a.messages {background:url(accountmessages.png)}

#text{width:600px;height:199px;overflow:hidden;float:left;}
div#text div {width:600px;height:199px;float:left; margin-left:20px;}

HTML

<div id="buttons">
        <ul>
            <li><a class="settings"></a></li>
            <li><a class="something"></a></li>
            <li><a class="messages"></a></li>
        </ul>
    </div>

    <div id="text">
       <div id="settings">
          <h2>Account Settings</h2>
          <p>Lorem ipsum dolor sit amet, consectetuer adipiscing</p>
       </div>
       <div id="something">
          <h2>Something</h2>
          <p>Lorem ipsum dolor sit amet, adipiscing elit. Nulla quam.</p>
       </div>
       <div id="messages">
          <h2>Messages</h2>
          <p>Lorem ipsum dolor sit amet, adipiscing elit. Nulla quam.</p>
       </div>      
    </div>

СЦЕНАРИЙ

 <script language="javascript" type="text/javascript">

    $("div#text div:not(#settings)").hide();
    $("#buttons li a.settings").css("background-position", "-40px 0");

    $("#buttons li a").click(function(){
        var target = $(this).attr("class");
        $("#buttons li a:not(a." + target + ")").css("background-position","0 0");
        $(this).css("background-position", "-40px 0");
        $("#"+target).show("slide", { direction: "left" }, 500);
        $("#text div").not("#"+target).hide("slide", { direction: "right" }, 500);
    });

 </script>
Это было полезно?

Решение

Установка встроенного css будет иметь приоритет над вашей таблицей стилей - поэтому попробуйте вместо этого переключить класс.

Я не уверен, чего вы пытаетесь достичь, поэтому некоторая комбинация addClass(), removeClass() или toggleClass() сделает свое дело.

Другие советы

Это то, чего ты хотел - Рабочая Демо-версия

$(function() {

    $("div#text div:not(#settings)").hide();
    $("#buttons li a.settings").css("background-position", "-40px 0");

    $("#buttons li a").click(function(){
        var target = $(this).attr("class");
        $("#buttons li a:not(a." + target + ")").css("background-position","0 0");

        $(this).css("background-position", "-40px 0");
        $("#"+target).show("slow");
        $("#text div").not("#"+target).hide("slow");
        return false;
    });
});

в показать() и скрыть() Команды jQuery принимают только два параметра: скорость и обратный вызов.У вас было строковое имя анимации, объект и число в качестве аргументов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top