为了账号安全,请及时绑定邮箱和手机立即绑定

jQuery UI-在外部单击时关闭对话框

jQuery UI-在外部单击时关闭对话框

喵喵时光机 2019-09-21 11:16:54
我有一个jQuery UI对话框,当单击特定元素时会显示该对话框。如果单击不是在那些触发元素或对话框本身上的任何地方发生的,我想关闭对话框。这是打开对话框的代码:$(document).ready(function() {    var $field_hint = $('<div></div>')        .dialog({            autoOpen: false,            minHeight: 50,            resizable: false,            width: 375        });    $('.hint').click(function() {        var $hint = $(this);        $field_hint.html($hint.html());        $field_hint.dialog('option', 'position', [162, $hint.offset().top + 25]);        $field_hint.dialog('option', 'title', $hint.siblings('label').html());        $field_hint.dialog('open');    });    /*$(document).click(function() {        $field_hint.dialog('close');    });*/});如果我取消注释的最后一部分,该对话框将永远不会打开。我认为这是因为打开对话框的同一点击再次将其关闭。最终工作代码注意:这是使用jQuery外部事件插件$(document).ready(function() {    // dialog element to .hint    var $field_hint = $('<div></div>')            .dialog({                autoOpen: false,                minHeight: 0,                resizable: false,                width: 376            })            .bind('clickoutside', function(e) {                $target = $(e.target);                if (!$target.filter('.hint').length                        && !$target.filter('.hintclickicon').length) {                    $field_hint.dialog('close');                }            });    // attach dialog element to .hint elements    $('.hint').click(function() {        var $hint = $(this);        $field_hint.html('<div style="max-height: 300px;">' + $hint.html() + '</div>');        $field_hint.dialog('option', 'position', [$hint.offset().left - 384, $hint.offset().top + 24 - $(document).scrollTop()]);        $field_hint.dialog('option', 'title', $hint.siblings('label').html());        $field_hint.dialog('open');    });    // trigger .hint dialog with an anchor tag referencing the form element    $('.hintclickicon').click(function(e) {        e.preventDefault();        $($(this).get(0).hash + ' .hint').trigger('click');    });});
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

查看jQuery Outside Events插件


让您做:


$field_hint.bind('clickoutside',function(){

    $field_hint.dialog('close');

});


查看完整回答
反对 回复 2019-09-21
  • 3 回答
  • 0 关注
  • 573 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信