我通过手动将它们放入 HTML 文件来运行一些测试弹出窗口,并且我必须关闭它们的 JS 函数运行良好。但是,当我动态添加弹出窗口时,关闭功能会中断并且无法删除。
这是 JS 函数,它告诉类中的所有弹出窗口在单击按钮.popup
时关闭。.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');
,因为当我这样做时,它会显示data
两次检索到的文本,有人知道这是为什么吗?
我不知道为什么当我动态添加弹出窗口时它会停止工作,但我肯定只是忽略了一些东西,因为我也无法弄清楚为什么data
当我进行常规.html()
或.text()
jQuery 调用时检索到的文本会显示两次.