我现在有了一个工作脚本,可以打开我点击链接旁边的窗口。
我遇到的问题是当窗口打开时单击另一个链接时会发生什么。如果我单击链接D,则会打开窗口。如果我点击链接A,窗口在'D'打开,窗口在链接A关闭。
FIDDLE 显示了我的意思。
我想做的是。关闭打开的窗口并在新链接处重新打开,或仅允许通过关闭链接关闭。
这是我正在使用的代码:
function deselect(e) {
$('.pop').slideFadeToggle(function() {
e.removeClass('selected');
});
}
$(function() {
$("[id$='contact']").click(function(){
if($(this).hasClass('selected')) {
deselect($(this));
} else {
$(this).addClass('selected');
$(".messagepop").css( {position:"absolute",
top:$(this).offset().top,
left: $(this).offset().left});
$('.pop').slideFadeToggle();
}
return false;
});
$('.close').on('click', function() {
deselect($('#contact'));
return false;
});
});
$.fn.slideFadeToggle = function(easing, callback) {
return this.animate({ opacity: 'toggle', height: 'toggle' }, 'fast', easing, callback);
};
我知道我能做到这一点吗?
答案 0 :(得分:0)
我可以在这里找到的问题,您在动画中使用切换功能并尝试控制点击事件。您需要处理显示/隐藏的动画而不是使用切换。
但是,JS代码正如预期的那样工作。如果它解决了你的目的,请尝试尝试从动画中删除切换。
$(function() {
$("[id$='contact']").click(function(){
var src = $(this);
$("[id$='contact']").removeClass('selected');
$('.pop').slideFadeToggle(function() {
$(".messagepop").css( {position:"absolute",
top:src.offset().top,
left:src.offset().left});
src.addClass('selected');
});
return false;
});
$('.close').on('click', function() {
deselect($('#contact'));
return false;
});
});
$.fn.slideFadeToggle = function(easing, callback) {
return this.animate({ opacity: 'toggle', height: 'toggle' }, 'fast', easing, callback);
};