2011-07-14 9 views
2

私はこのようないくつかのリスナーを持っています。これはクリックを聞き、<div id="c50"><a hre...>CONTENT</a></div>(この場合)内のコンテンツを表示します。 Opera、Chrome、FFではすべて動作しますが、IEでは動作しません。JavaScriptエラー "機能が期待されています"

google.maps.event.addListener(pano50, 'click', function() {  
fireEvent(document.getElementById("c50").getElementsByTagName("a")[0], 'click'); 
}) 

コンソールツールをクリックした後に、このエラーが表示されます(ただし、正常に動作します)のjavascriptクローム:

Uncaught TypeError: object is not a function 

が、伝統的に、IE8が表示されます。

上記のコードの最初の行である
Function expected on line 817 

をクリック後は何もしないでください。アドバイスありがとう!

編集:ここでは、fireEvent関数です:

function fireEvent(element, event) { 
    if (document.createEventObject){ 
     /* for IE */ 
     return element.fireEvent('on' + event, document.createEventObject()); 
    }else{ 
     /* for other browsers */ 
     var evt = document.createEvent('HTMLEvents'); 
     evt.initEvent(event, true, true); 
    } 
    return !element.dispatchEvent(evt); 
} 
+0

'alert(typeof google.maps.event.addListener)'を実行した結果はどうですか? – digitalbath

+0

申し訳ありませんが、私はビールを飲みに行きました。それは単一の単語を表示します:function – culter

+0

hmm。 'alert(type of fireEvent)'はどうでしょうか? – digitalbath

答えて

2

your pageでMooToolsを実行しています。 MooToolsはIEの組み込みのelement.fireEvent()メソッドをすべてのブラウザで有効なits own normalized methodで上書きします。 fireEvent()のMooToolsのバージョンでは、 "onclick"の代わりに "click"が必要です。

あなたは、単に代わりに「onclickの」の「クリック」を使用して、あなたのfireEvent機能を変更することで、この1つの問題解決することができます

/* for IE */ 
return element.fireEvent(event, document.createEventObject()); 

をしかし、MooToolsのは、すべてのブラウザで動作するようにelement.fireEventを正規化するので、あなたはできるかもしれませんfireEvent機能を無効にし、代わりにelement.fireEvent()を直接呼び出すだけです。

大きな問題があるかもしれません。 MooToolsとjQueryを並行して使用していますが、これは大丈夫ですが、あなたが何をしているのかわからない場合は、すぐに問題に遭遇する可能性があります。

+0

ありがとう、gilly3、あなたのコメントは非常に有益です。私はreturn要素[event]()でそれを解決しました。 IE * /の/ *に続く行の代わりに。そしてあなたが正しいです、私はmootoolsとjqueryで何をしているのか正確にはわかりません。要点は、mootoolsの仕組みがわからないことですが、フラッシュファイルを表示するためにbumpbox(ライトボックスの代替)を実行する必要があります。私は他のすべてのためにjQueryを使うことを計画しています。なぜなら私はそれに最低限のスキルしか持たず、それを扱う方が簡単だからです。それは一緒に、他のもの、特にFacebookのコメントプラグインと一緒に働くようにするための挑戦でした。とにかく、thans! – culter

1



document.getElementById("c50").getElementsByTagName("a")[0]

は関数ではないので、それはそれは文句だ可能です。 fireEvent関数はどこから来ますか?

+0

シェルマンにありがとう、私は非常にjavascriptに熟練していない。 fireEventは、ここでstackoverflowのアドバイスでした。 turie.eu/hlavna2をチェックしてください。817行目にmap.jsという関数があります。そして、上記と同様に約25個ですが、最後のものについては毎回苦情を言います。 – culter

+0

shelman、私は質問を編集してfireEventを追加しました。関数。それはあなたが私を助けるためにhepls希望:ありがとう – culter

関連する問題