イベントが定義されていないというエラーが表示されます
ドー!私たちは皆、気づいたはずです。
それevent
はほとんどのブラウザではグローバルではありませんが、IE上にあり、ChromeはIEをグローバルにし、実行する必要があることを実行する(イベントハンドラ関数に渡す)ことで、IE用に設計されたサイトに骨を投げます。
最善の策は、まったく使用onclick="code"
しないことです(以下を参照)が、これを行うこともできます。
<div id="22" class="otherClass" onclick="goToEdit(event);">Title</div>
...クロスブラウザで動作するはずです。オブジェクトは、ハンドラーが呼び出されるevent
特別なコンテキストで定義されているonclick
(標準的な方法でこれを行うブラウザーの場合)か、グローバル(IEの場合)であるため、どちらの方法でもその時点で定義されます(ただし、必ずしもそうとは限りません)。 、グローバルとして、goToEdit
関数の後半で—これが引数として渡す理由です)。
しかし、繰り返しますが、私はそれをしません。代わりに、id
CSSの値を文字で始めて有効にし、jQueryを使用してハンドラーを接続します。
HTML:
<div id="d22" class="otherClass">Title</div>
JavaScript:
$("#d22").click(goToEdit);
function goToEdit(event) {
tree.selectItem(event.target.id.substring(1));
btnMyButton_onclick();
}
ノート:
- 値を渡す前
d
に、値の先頭を削除しました。理由id
があったと思います。22
- 行う理由はありません。直接
$(event.target).attr('id')
使用するだけです。event.target.id
div
に他の要素(span
s、em
s、p
sなど)が含まれている可能性がある場合は、ではない可能性があることに注意してください。これevent.target
はdiv
、の子孫要素である可能性がありますdiv
。this
ただし、常にdiv
(jQueryはそれを認識します)になるので、次のようになります。
$("#d22").click(goToEdit);
function goToEdit(event) {
tree.selectItem(this.id.substring(1));
btnMyButton_onclick();
}