gpt4 book ai didi

javascript - 实现 jquery bubble-popup 的点击事件

转载 作者:行者123 更新时间:2023-12-02 18:47:09 26 4
gpt4 key购买 nike

我正在尝试在我的网站上实现 jquery-bubble-popup 但我完全陷入困境。我正在尝试执行以下操作。

  1. 如果有人点击“报告信息”div,则会弹出与该报告相关的气泡。
  2. 我希望能够更改弹出窗口中的内容并单击“提交”,这会将数据发布到该服务器。
  3. 如果在弹出窗口之外单击。我希望它简单地关闭。

设置非常简单,但我却抓狂了。无法让弹出窗口在不失控的情况下关闭。

fiddle :http://jsfiddle.net/rECnm/1/

jQueryBubblePopup:http://www.maxvergelli.com/jquery-bubble-popup

代码:

$(document).ready(function () {
$('div.emailReportIcon').CreateBubblePopup({
manageMouseEvents: false
});
$('div.emailReportIcon').click(function (event) {
var button = $(this);
var email = button.attr("data-email");
var message = '<div style="padding:10px;width: 250px;"><p><input type="checkbox"> Email me when new reports are ready.</p>' + '<p>Email Address<br /><input type="text" value="' + email + '"></p>' + '<div >' + '<input type="image" name="submit" value="submit" class="submitButton">' + '</div></div>';
button.ShowBubblePopup({
manageMouseEvents: false,
position: 'bottom',
align: 'left',
tail: {
align: 'left'
},
innerHtml: message,
innerHtmlStyle: {
color: '#000',
'text-align': 'left'
},
themePath: 'http://www.maxvergelli.com/docs/jquery-bubble-popup-examples/images/jquerybubblepopup-themes',
alwaysVisible: false,
closingDelay: 200,
selectable: true
});
});
});

最佳答案

http://jsfiddle.net/rECnm/9/

var button = false;
var active = true;
$(document).ready(function () {
$('div.emailReportIcon').CreateBubblePopup({
manageMouseEvents: false
});
$('div.emailReportIcon').click(function (event) {
resetActiveBubble();
button = $(this);
active = true;
var email = button.attr("data-email");
var message = '<div style="padding:10px;width: 250px;"><p><input type="checkbox"> Email me when new reports are ready.</p>' + '<p>Email Address<br /><input type="text" value="' + email + '"></p>' + '<div >' + '<input type="image" name="submit" value="submit" class="submitButton">' + '</div></div>';
button.ShowBubblePopup({
manageMouseEvents: false,
position: 'bottom',
align: 'left',
tail: {
align: 'left'
},
innerHtml: message,
innerHtmlStyle: {
color: '#000',
'text-align': 'left'
},
themePath: 'http://www.maxvergelli.com/docs/jquery-bubble-popup-examples/images/jquerybubblepopup-themes',
alwaysVisible: false,
closingDelay: 200,
selectable: true,
afterShown: function() {
active = false;
$(".jquerybubblepopup").bind("mouseenter",function() {
active = true;
}).bind("mouseleave", function() {
active = false;
});
}
});
});
$(window).bind('click',function() {
resetActiveBubble();
});
});
function resetActiveBubble() {
if ( button && active == false ) {
button.RemoveBubblePopup();
button.CreateBubblePopup({
manageMouseEvents: false
});
}
}

上面的代码有一个窗口单击监听器和一个 bool 变量,用于确定气泡是否“事件”(例如,鼠标位于气泡上方)。

此解决方案不适用于 ipad 等(您需要触摸监听器),并且在使用 jsfiddle 时,您仍然可以通过在加载过程中单击它来关闭气泡;在 afterShown 被触发之前,事件状态不会被附加。

我确信它可以被优化(另请注意 jsfiddle 中的 console.logs)。我希望这会有所帮助。

关于javascript - 实现 jquery bubble-popup 的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16245764/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com