2

プロトタイプ1.7.0を使用しています。 下記のようなHTMLコードがあります。 私はオンのカスタムメソッドを追加しました。htmlタグのカスタムプロパティがie9とfirefoxによって認識されない

<div id="showButton" onclick="javascript:hello();" onhide="onNamehide()">show</div> 

今、私がクリックしたときに、$('showButton').onhideがtrueにIE8で表示され、IE9、Firefoxでfalseと評価します。

function hello(){ 
    if($('showButton').onhide){ 
    alert("I am able to find onhide function"); 
    } else { 
    alert("Sorry, I am not able to find onhide function"); 
    } 
} 

誰か教えていただけますか?

+0

'Prototype'はjqueryではありません。間違ったタグ名! –

答えて

3

Element#hasAttribute

if ($('showButton').hasAttribute('onhide')) { 

onhideためのテストは時々しか動作することを理由に複雑かつ微妙であるを参照してください。技術的には、$('showButton')によって返されたオブジェクトは、DOMのjavascript表現であり、HTML要素そのものではありません。古いブラウザでは、HTML属性をDOMプロパティとして扱うことでこの問題を混乱させますが、DOMプロパティを設定しても必ずHTML属性が設定されるわけではありません。ブラウザーが仕様に近づくにつれ、その差はより正確になります。

は(クロスbrowsernessのためreadAttributewriteAttributeとしてプロトタイプで抽象化)getAttributesetAttributeような関数を使用して指定ではなく実装するコードを作成してみてください。

関連する問題