javascript - 如何防止在灯箱/模态中进行回发调用

标签 javascript jquery modal-dialog

我有一个显示表单的灯箱/模式,但在选择标记中有一个回发调用,它一直关闭我的灯箱。有没有一种方法可以防止使用 javascript 进行回发调用。

$(document).ready(function () {
                var display = $('.lightbox-overlay').css('display');
                $('.lightbox').click(function (e) {
                    if ($('.lightbox-overlay').length != 0) {
                        $("body").css("overflow", "hidden");
                    }
                    $('.lightbox-overlay').animate({ 'opacity': '.9' }, 300, 'linear');
                    $('.dialog-ui').animate({ 'opacity': '1.00' }, 300, 'linear');
                    $('.lightbox-overlay, .dialog-ui').css('display', 'block');
                    e.preventDefault();
                });

                $('.close-btn').click(function () {
                    closeBox();
                });

                $('.lightbox-overlay').click(function () {
                    closeBox();
                });
            });

            function closeBox() {
                $('.lightbox-overlay, .dialog-ui').css('display', 'none');
                $("body").css("overflow", "visible");
            }

HTML

    <a class="lightbox click-here-link" href="#">click here</a>
    <div class="dialog-ui">
    <div class="inner">
        <a class="close-btn" href="#">close</a>
        <h3>Build your product</h3>

        <div class="data-row clearfix">     <span class="product-build-steps">1</span><span id="ctl21_pb_LBL_og1150"><label>Select Hand</label></span> <select id="ctl21_pb_DDL_og1150" onchange="javascript:setTimeout('__doPostBack(\'ctl21$pb_DDL_og1150\',\'\')', 0)" name="ctl21$pb_DDL_og1150">   <option value="HRH" selected="selected">Right Hand</option>     <option value="LRH">Left Hand (+£1.99)</option>

</select>

最佳答案

$('#selectTag').change(function(e){
   e.preventDefault();
});

这样,select 就停止了它应该做的事情

试试这个:

var container = //dom selector for the div or whatever that has all the selects
$(container).find('select').each(function(){
   $(this).removeAttr('onchange');
});

如果这是 ASP.NET,__doPostBack() 函数是在 onclick 属性上声明的,这样您就可以避免回发。

关于javascript - 如何防止在灯箱/模态中进行回发调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9115078/

相关文章:

Javascript正则表达式匹配不同的组

javascript - 使用 jquery 或 javascript 拆分具有不同分隔符的字符串

asp.net - Twitter Bootstrap - 模态格式的表单 - ASP.NET

ruby-on-rails - Twitter Bootstrap 模式加载错误的远程数据

javascript - 如何在单击上下文菜单中的选项时显示模式对话框?

javascript - 单击按钮后如何禁用拖动功能

javascript - 如何从 chrome 扩展访问 angularjs 根范围

jquery - 如何在滚动时卡住表格的前两列

javascript - jQuery 克隆和附加功能无法按 AngularJS 指令中的预期工作

javascript - 使用 jQuery 添加内联 onclick 事件