Проблема немного похожа на эту
live click выполняется несколько раз , только метода live в коде нет.
Код такой:
var $jq=jQuery.noConflict();
$jq(function() {
var popupWindowCloseHandler = function(event) {
event.preventDefault();
$jq('body').children('.popup-window-shadow').fadeOut('fast').remove();
$jq('body').children('.popup-window-box').fadeOut('fast').remove();
};
var popupWindow = function(url) {
var box = $jq(document.createElement('div'));
box.addClass('popup-window-box');
var shadow = $jq(document.createElement('div')).appendTo('body');
shadow.addClass('popup-window-shadow')
.append('<span></span>')
.fadeIn('fast')
.click(popupWindowCloseHandler);
$jq.ajax({
url: url,
contentType: "text/html; charset=windows-1251",
success: function(html) {
box.append(html).appendTo('body');
box.fadeIn('fast')
.css('margin-left', '-'+ (box.width() / 2) +'px')
.find('.popup-window-close')
.click(popupWindowCloseHandler);
alert(1);
my_top = ($jq(document).scrollTop() + (($jq(window).height() - box.height()) / 2));
if (my_top<0) {my_top = 0;}
my_top += 'px';
box.css('top', my_top);
}
});
};
$jq('.popup-window').click(function(event) {
event.preventDefault();
popupWindow(this.href);
});
});
Соответственно, при нажатии на ссылку класса popup-window создается "тень" во всю страницу, затем сверху показывается окно.
Проблема в том, что если это окно закрыть (кликом по "тени"), а затем нажать ссылку еще раз, каким-то образом снова вызываются все предыдущие экземпляры popupWindow. Это видно по alert'у, а дебаггер их не замечает. Это происходит в IE, а в других браузерах, похоже, нет.
В чем может быть дело?