还不能回答......
发现问题...尝试了你们所说的一切,然后逐行使用firebug我发现当我.empty()一个带有javascript的div时,无论js在哪里都停留在,所以每次我刷新状态窗格,我在堆栈中添加了另一组js。
必须更好地组织我的js ...谢谢所有人。
//
我有一些jquery可以处理控制面板类型系统上的点击。有三种点击,开/关(class =“checkbox”),模态弹出(class =“editbox”)和模态的执行。 “复选框”和“编辑框”工作正常,切换选项或显示弹出窗口,但是,当hasClass('fl_ejecuta')匹配时,它被调用两次。
我已经多次查看代码,甚至将其与其他所有内容完全隔离,但是这一部分总是被调用两次......任何人都能看到我错过的内容吗?我出于某种原因无法使用它。
以下是相关的javascript:
$(".conclick").click(function() {
var accion = $(this).attr('accion');
var data = $(this).attr('data');
var valor = $(this).attr('valor');
var esto = $(this);
if($(this).hasClass('checkbox')) {
$.post("ejecuta.php",{t:"checkbox",a:accion,d:data,v:valor}).done(function(retorno) {
if(retorno != "N") {
if(valor == "1") { esto.attr('valor','0'); esto.empty(); }
if(valor == "0") { esto.attr('valor','1'); esto.empty().html('✓'); }
} else {
hayError("checkbox",accion,data,valor);
}
});
}
if($(this).hasClass('editbox')) {
$.post("ejecuta.php",{t:"editbox",a:accion,d:data,v:valor}).done(function(retorno) {
if(retorno.status == "OK") {
$('.fl_titulo').empty().html(retorno.titulo);
$('.fl_explica').empty().html(retorno.explica);
$('.fl_data').empty().html(retorno.form);
$('.fl_ejecuta').attr('data',retorno.data);
$('#flotante').show('fast');
} else {
hayError("editbox",accion,data,valor);
}
}, "json");
}
if($(this).hasClass('fl_ejecuta')) {
alert('fl_ejecuta');
}
});
点击两次点击的HTML:
<div id="flotante" style="display:none;">
<div id="flota">
<div class="fl_titulo"></div><div id="fl_cerrar">X</div>
<div class="fl_explica"></div>
<div class="fl_data"></div>
<div class="conclick fl_ejecuta" data="" valor=""><?php echo texto("MODIFICAR"); ?></div>
</div>
</div>
答案 0 :(得分:1)
答案 1 :(得分:0)
尝试使用:
$(".conclick").live('click',function() { ....
您可能在js中附加了两次点击侦听器。或者看看委托的.on。
答案 2 :(得分:0)
发现问题...尝试了你们所说的一切,然后逐行使用firebug我发现当我.empty()一个带有javascript的div时,无论js在哪里都停留在,所以每次我刷新状态窗格,我在堆栈中添加了另一组js。
必须更好地组织我的js ...谢谢所有人。