Javascript回调混淆

Posted

技术标签:

【中文标题】Javascript回调混淆【英文标题】:Javascript callback confusion 【发布时间】:2011-05-31 15:02:34 【问题描述】:

我正在使用 DataTables 显示行数据,在右侧的最后一列中有 2 张图像,一张用于编辑,一张用于删除。为了捕获我使用的点击事件:

 $('#datatable tbody tr a.delete img').live( 'click', function () 
        );

朋友给了我这个代码试试..

function fancyAlert(msg) 
        jQuery.fancybox(
        'modal' : true,
        'content' : "<div style=\"margin:1px;width:240px;\">"+msg+"<div style=\"text-align:right;margin-top:10px;\"><input style=\"margin:3px;padding:0px;\" type=\"button\" onclick=\"jQuery.fancybox.close();\" value=\"Ok\"></div></div>"
        );
    

    function fancyConfirm(msg,callback) 
        var ret;
        jQuery.fancybox(
            modal : true,
            content : "<div style=\"margin:1px;width:240px;\">"+msg+"<div style=\"text-align:right;margin-top:10px;\"><input id=\"fancyConfirm_cancel\" style=\"margin:3px;padding:0px;\" type=\"button\" value=\"Cancel\"><input id=\"fancyConfirm_ok\" style=\"margin:3px;padding:0px;\" type=\"button\" value=\"Ok\"></div></div>",
            onComplete : function() 
                jQuery("#fancyConfirm_cancel").click(function() 
                    ret = false;
                    jQuery.fancybox.close();
                )
                jQuery("#fancyConfirm_ok").click(function() 
                    ret = true;
                    jQuery.fancybox.close();
                )
            ,
            onClosed : function() 
                callback.call(this,ret);
            
        );
    

    function fancyConfirm_text() 
        fancyConfirm("Ceci est un test", function(ret) 
        alert(ret)
        )
    

当我像这样使用它时会起作用:

$('#datatable tbody tr a.delete img').live( 'click', function () 

     if (!fancyConfirm("Are you sure you want to delete this record?"))
            e.preventDefault();

 );

我对回调部分感到困惑,因为当我单击“取消”时,该框消失了,但页面仍然灰显并锁定。我想要做的是,如果用户单击取消结束并恢复正常,如果用户单击“确定”,那么我需要将 var rowID 传递给文件“delete_row.php”......但这是新领域我..如果它是一个简单的 html 链接,我可以获得 .val 并完成,但在 DataTables 中我没有那个选项..

这里有人能指出我正确的方向吗?我已经用谷歌搜索了这个,但无法找到关于我的使用要求的信息。

【问题讨论】:

锚标签的href里有什么? 虽然我没有时间帮助你,但我只是想指出没有必要为自己辩解。我们都在这里为所有经验水平的所有编码人员提供帮助。 :) 【参考方案1】:

fancyConfirm 函数期待回调函数,当未给出时,fancybox onclosed 事件中有错误,这可能解释了为什么它保持灰色。

尝试将调用更改为:

fancyConfirm("Are you sure you want to delete this record?", function(ret)  )

【讨论】:

成功了!谢谢.. 我明白我错过了什么,所以这是双重奖励.. :) 抱歉,直到现在我才知道我需要这样做。哈哈,再次感谢! @Dennis 没问题,这就是这个地方的运作方式 - 很高兴您也接受了其他问题的答案。 :)

以上是关于Javascript回调混淆的主要内容,如果未能解决你的问题,请参考以下文章

.Net 组件用于 JavaScript 混淆?

JavaScript 混淆的Javascript警报

JavaScript 另一个(更好)混淆的Javascript警报

javascript脚本混淆

JavaScript 导入模块混淆

javascript和同源策略混淆