0
http://www.luxuryfurclothing.com/

Data Security Solution最後のメニューの子であるアイテム(必要に応じたソリューション、業種別のソリューション、業界別のソリューション)がクリックされないようにしたい。

ページの下部にコードを追加します。

<script type="text/javascript">
    jQuery.noConflict();
    var eles = jQuery('li.category51 ul li.level1>a'), i;

    for (i = 0; i < eles.length; i++) {
        eles[i].onclick = function(event) {
            event.preventDefault();
        };
        eles[i].onmouseover = function() {
            this.style.cursor="auto";
        };
    }
</script>

これはFirefoxとChromeで機能しますが、IE8では機能しません。

4

3 に答える 3

0

1) IE8 で作業する場合li.level1>aは、ドキュメントの最初にこの DOCTYPE を指定する必要があります。

<!DOCTYPE html>
<html>
...

ドキュメントを として解釈するように要求しても機能しませんxhtml1。その上、XHTML を使用する理由はめったにありません。

2) Shusi が述べたようpreventDefaultに、ネイティブ IE イベントを呼び出すことはできません。解決策は、jQuery 機能を使用することです。

$('li.category51 ul li.level1>a').click(function(event) {
    event.preventDefault(); // this is a jquery wrapped event
}).mouseover(function() {
    this.style.cursor="auto";
});
于 2012-09-27T08:08:29.167 に答える
0

IEはサポートしていませんpreventDefault

event.returnValue = false;IEに使用する必要があります

実装:

if(event.preventDefault){
  event.preventDefault();
} 
else{
   event.returnValue = false;
}
return false;

あなたはjQueryを使用しているので、より簡単な方法があります

jQuery.noConflict();
var eles = jQuery('li.category51 ul li.level1>a'), i;
eles.click(function(event) {
        return false;
    }).mouseover(function() {
        this.style.cursor="auto";
    });
于 2012-09-27T08:11:33.193 に答える
0

jQuery とネイティブ JavaScript (少なくともイベント処理用) を混在させるのではなく、ブラウザー間の互換性のために jQuery を使用しないのはなぜですか?

jQuery('li.category51 ul li.level1>a')
  .click(function(event){
    event.preventDefault();
  })
  .mouseenter(function(event) {
    $(this).css('cursor', 'auto');
  });

...では、CSS を使用してカーソルを設定してみませんか?

li.category51 ul li.level1>a {
  cursor: auto;
}
于 2012-09-27T08:21:06.920 に答える