1

これは私が現在取り組んでいるサイトデザインです:mailodging。数日前にjqueryを学びましたが、助けが必要です。

現時点では、jqueryを使用して現在のページのメニューに左パディング効果があります。

$(function(){
var pathname = (window.location.pathname.match(/[^\/]+$/)[0]);
$('#menu ul li a').each(function() {
if ($(this).attr('href') == pathname)
{
    $(this).addClass('currentlink');
}
});

これが「currentlink」クラスのcssです

 .currentlink {
margin-left: 30px;
}

メニューリンクには、マウスオーバー(ホバー)したときと同じパディング左効果があります。

  $(document).ready(function() {
$('.menulink').hover(function() { 
$(this).animate({ opacity: 1, marginLeft: '30px' }, 300);
}, function() { 
$(this).animate({ opacity: 0.8, marginLeft: 0 }, 200);
  });  
  });

私の問題は、現在のリンクにカーソルを合わせると、リンクに二重のパディング(現在の場合は30ピクセル、マウスオーバーの場合は30ピクセル)が表示されることです。これは望ましくありません。現在のリンクを固定マージンに保つ方法について何かアイデアはありますか?

4

2 に答える 2

1

.not()メソッドまたは:notセレクターを使用できます。

.notメソッド:

$('#menu ul li a').not('.currentlink ').hover(function () {} );

またはcssセレクター:

  $('#menu ul li a:not(.currentlink)').hover(function() {});
于 2013-03-10T10:31:44.483 に答える
0

次のことを試すことができます。

$(document).ready(function() {
    $('#menu li a[class!="currentlink"]').hover( function() {
        ...
    }, function() {
        ...
    });
});
于 2013-03-10T10:30:23.247 に答える