2

リンクにカーソルを合わせると下線が引かれたdivがありました。JSイベントをdivに追加しましたonmouseover。ハイパーリンクにカーソルを合わせると、ハイパーリンクに下線が引かれなくなりましたonmouseover。代わりに、イベントに追加したアクションが実行されます。

関数からのコード:

function addPlus(elementId)
{
 if(typeof addPlus.backup == 'undefined')
  addPlus.backup = document.getElementById(elementId).innerHTML;
 if(full)
 {
  document.getElementById(elementId).innerHTML = plusCode + addPlus.backup;
  return backup;
 }
 else
  return snippet;
}

divコード:

<div class="nav_bar" id="navbar1" onmouseover="addPlus('navbar1')" onmouseout="removePlus('navbar1')">

編集:チャドが提案したように、「trueを返す」ことを試みてreturn true;、、、、return Boolean(true);を試しました。return new Boolean(true);それらのどれも動作しません。申し訳ありませんが、私は本当に何をすべきかわかりません。私はJavascriptを初めて使用します。

編集2:くそー、チャドはdivタグでtrueを返すことを意味していることに気づきました。だから今私は持っています<div class="nav_bar" id="navbar1" onmouseover="addPlus('navbar1');return true" onmouseout="removePlus('navbar1')">が、残念ながらそれはまだ機能しません。

4

3 に答える 3

1

js イベントを発生させたくない場合は、マウスが入ったときにイベントの伝播を停止する必要があります<a>。return false でハイパーリンクごとに onmouseover イベント ハンドラを追加してみてください<a onmouseover="return false" ...

于 2010-11-21T11:27:24.530 に答える
0

イベントが伝播するには、onmouseover ハンドラから true を返す必要があります。

于 2010-11-17T17:43:45.070 に答える
0
  1. JavaScript の代わりに CSS を使用してリンクの下線を引く場合、これは発生しません。
  2. おそらく、リンクの下線を処理するために HTML または JavaScript でハンドラーを明示的に設定している腐ったコードがありonmouseover(適切に使用する代わりにaddEventListener)、このハンドラーを上書きしている可能性があります。詳細な情報がなければ、何が問題なのかを推測するのは困難です。詳細については、コード例を提供してください。
于 2010-11-17T17:46:04.880 に答える