2011-07-22 13 views
4

私はOpenlayersポップアップの中にボタンを入れようとしています。ボタンが次のコードで正しく表示されているように見えますが、ボタン 'をクリックすると関数' handlerFunc 'は実行されません。私が投稿したコードのセグメントは、すべて別の関数内にあります(したがって、handlerFuncは実際にネストされた関数です)。私はボタン自体にJQueryを使用しています。何が間違っているかもしれないかに関するアイデア?ありがとう!Openlayersポップアップでボタンを取得する方法は?

var feature = new OpenLayers.Feature(presences, ll); 
     feature.popupClass = popupClass; 
     feature.data.popupContentHTML = "<button id='popupButton'>Click me</button>"; 
     feature.data.overflow = (overflow) ? "auto" : "hidden"; 
     feature.data.icon = markerIcon; 
    $('#popupButton').button(); 
    $('#popupButton').click(handlerFunc); 


function handlerFunc() { 
    // do something 
} 
+0

これは機能しませんか? '$( '#popupButton')。(function(){alert(" foo ");});'また、 'z-index'を十分に高く設定していますか? –

答えて

3

ほとんどの理由は、clickイベントにバインドしたときにボタンが存在しないためです。 $('#popupButton')nullを返します。 $('#popupButton').click(handlerFunc);の代わりに$('#popupButton').live('click', handlerFunc);を試してください。つまり、DOMが構築されたときだけでなく、オブジェクトが表示されたときにイベントにバインドするということです。

+3

ありがとうございます。私はハンドラ関数をグローバルにしたときに問題が解決されたことを知りました。なんらかの理由で、ローカル関数が正しいスコープにない。 – Yuna

関連する問題