私は Drupal を実行しており、「CSS ファイルの集約と圧縮」と「JavaScript ファイルの集約」を有効にしています。次のjQueryを使用して、要素の1つにクラスを追加していますが、これは完全に機能します。
ただし、「CSS ファイルを集約して圧縮する」を有効にすると、IE7 および IE8 で目的の結果が得られません。Firefox、Safari、Chrome で正常に動作します。
Drupal は圧縮された CSS を動的に生成し、新しいディレクトリに配置します。
これが私のjQueryです:
(function ($, Drupal, window, document, undefined) {
$(document).ready(function(){
// ADD CLASS TO MAIN MENU ITEM WHEN CHILD UL IS HOVERED //
$("#menu-218-1 ul").hover(
function(){ $("li#menu-218-1 a.sf-depth-1").addClass('submenu_hover') },
function(){ $("li#menu-218-1 a.sf-depth-1").removeClass('submenu_hover') }
)
$("#menu-539-1 ul").hover(
function(){ $("li#menu-539-1 a.sf-depth-1").addClass('submenu_hover') },
function(){ $("li#menu-539-1 a.sf-depth-1").removeClass('submenu_hover') }
)
$("#menu-540-1 ul").hover(
function(){ $("li#menu-540-1 a.sf-depth-1").addClass('submenu_hover') },
function(){ $("li#menu-540-1 a.sf-depth-1").removeClass('submenu_hover') }
)
$("#menu-545-1 ul").hover(
function(){ $("li#menu-545-1 a.sf-depth-1").addClass('submenu_hover') },
function(){ $("li#menu-545-1 a.sf-depth-1").removeClass('submenu_hover') }
)
$("#menu-546-1 ul").hover(
function(){ $("li#menu-546-1 a.sf-depth-1").addClass('submenu_hover') },
function(){ $("li#menu-546-1 a.sf-depth-1").removeClass('submenu_hover') }
)
$("#menu-547-1 ul ").hover(
function(){ $("li#menu-547-1 a.sf-depth-1").addClass('submenu_hover') },
function(){ $("li#menu-547-1 a.sf-depth-1").removeClass('submenu_hover') }
)
});
})(jQuery, Drupal, this, this.document);
これが私のCSSです:
.submenu_hover {
background: #888888 url(../images/arrow.png) no-repeat 97px 0px;
border-left: #888888 solid 9999px;
margin-left: -9999px;
}
.lt-ie8 .submenu_hover {
background: #888888 url(../images/arrow.png) no-repeat 97px 0px;
border-left: #888888 solid 9999px;
margin-left: -960px;
}