HTMLファイルに手動で配置していくつかのテストポップアップを実行していましたが、それらを閉じる必要があったJS関数は正常に機能しました。ただし、ポップアップを動的に追加すると、閉じる機能が壊れて削除できません。
ボタンがクリック.popup
されたときにクラス内のすべてのポップアップを閉じるように指示する JS 関数を次に示します。.close
コードには、ユーザーが閉じるボタンの上にカーソルを置いたときに閉じるボタンの画像を切り替えるホバー機能も含まれていますが、これも壊れています。
$('.popup').on('click', '.close', function() {
$(this).closest('.popup').remove(); //or .hide() if you just want to hide the popup
});
$('img.close').hover(function () {
this.src = '/engine/themes/img/popup.close.hover.png';
}, function () {
this.src = '/engine/themes/img/popup.close.idle.png';
});
そして、これがDOMに追加する私の方法です
var popupID = 'popup1';
// Create popup div
var popupHTML = '<div id="'+popupID+'" class="popup">'+
'<div class="toolbar"><div id="title">Please Wait</div>'+
'<img class="close" src="/engine/themes/img/popup.close.idle.png" alt="Close" title="Close" />'+
'</div><p class="text">Loading...<p></div>';
$('body').append(popupHTML);
$.ajax({
url: pageURL,
cache: false,
success: function(data) {
var matches, pageTitle;
matches = data.match(/<title>(.*?)<\/title>/);
pageTitle = 'MERKD.COM';
if ( typeof matches !== 'undefined' && matches != null ) {
pageTitle = matches[1];
}
$('#'+popupID).html(strReplace('Loading...', data, $('#'+popupID).html()));
$('#'+popupID).html(strReplace('Please Wait', pageTitle, $('#'+popupID).html()));
} // end success call
}); // end ajax function
下部にあるのは、単に使用するのではなく、手動で作成した置換メソッドを使用していることに注意してください$('#popup1 p').html('some text');
。これを行うと、2 回取得されたテキストが表示されるdata
ためです。
data
ポップアップを動的に追加したときにこれが機能しなくなった理由についてはわかりませんが、通常の呼び出し.html()
または.text()
jQuery 呼び出しを行うときに取得したテキストが 2 回表示される理由もわからないため、何かを見落としていることは確かです。.