0

还不能回答所以...

发现了问题...尝试了你们所说的所有内容并逐行使用firebug我发现当我使用javascript .empty()一个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>
4

3 回答 3

1

你的代码

$(".conclick").click(function() {

似乎工作正常:

http://jsfiddle.net/kexwh/1/

于 2013-05-27T20:03:39.840 回答
0

发现了问题...尝试了你们所说的所有内容并逐行使用firebug我发现当我使用javascript .empty()一个div时,其中的任何js都保持不变,所以每次我刷新状态窗格时,我在堆栈中添加了另一组 js。

必须更好地组织我的 js...谢谢大家。

于 2013-08-10T18:00:37.887 回答
0

尝试使用:

$(".conclick").live('click',function() { ....

您可能在 js 中附加了两次点击侦听器。或查看委托的.on。

于 2013-05-27T20:05:33.050 回答