クリック イベントを DOM に追加する前に JQuery オブジェクトにアタッチするのに苦労しました。
基本的に、関数が返すこのボタンがあり、それを DOM に追加します。私が欲しいのは、独自のクリックハンドラーでボタンを返すことです。ハンドラーをアタッチするためにDOMから選択したくありません。
私のコードはこれです:
createMyButton = function(data) {
var button = $('<div id="my-button"></div>')
.css({
'display' : 'inline',
'padding' : '0px 2px 2px 0px',
'cursor' : 'pointer'
}).append($('<a>').attr({
//'href' : Share.serializeJson(data),
'target' : '_blank',
'rel' : 'nofollow'
}).append($('<image src="css/images/Facebook-icon.png">').css({
"padding-top" : "0px",
"margin-top" : "0px",
"margin-bottom" : "0px"
})));
button.click(function () {
console.log("asdfasdf");
});
return button;
}
戻るボタンはクリックイベントをキャッチできません。ただし、これを行うと(ボタンがDOMに追加された後):
$('#my-button').click(function () {
console.log("yeahhhh!!! but this doesn't work for me :(");
});
それは機能します...しかし、私にとっては、私が望むものではありません。
オブジェクトがまだ DOM の一部ではないという事実に関連しているようです。
おー!ちなみに、私は OpenLayers を使用しており、ボタンを追加する DOM オブジェクトは OpenLayers.FramedCloud です (これはまだ DOM の一部ではありませんが、いくつかのイベントがトリガーされると、その一部になります)。