我有一个显示表单的灯箱/模式,但在选择标记中有一个回发调用,它一直关闭我的灯箱。有没有一种方法可以防止使用 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/