Javascript函数需要2次单击才能执行

时间:2016-01-23 20:42:47

标签: javascript

当用户点击图片时,它会使用确认提醒消息部分触发javascript。在第二次单击时,剩余的javascript完成它获取我的功能并删除记录。我希望整个脚本只需单击一次(而不是两次)即可执行。我的代码出了什么问题?

<img id="#id#" src="images/delete.gif" width="16" height="16" title="Delete letter" class="delete" />    

这是我的javascript:

<script type="text/javascript">
    $(document).ready(function() {
        $('table td img.delete')
        .live('click', function() {
            var currentRow = $(this); 
            if(confirm("Are you sure you want to permanently delete this letter?")){
                $.get('cfc/letters.cfc?method=deleteLetter&returnformat=plain', 
                        { id: $(this).attr('id') },
                        function(returnMsg){
                            if(returnMsg.replace(/^\s+|\s+$/g, '')==='ok'){
                                $(currentRow).parent().parent().remove();
                            }
                        }
                );
            }
        });
    });
</script>

2 个答案:

答案 0 :(得分:0)

除了Pranshant Palikhe的评论之外,Ajax根据其异步性质的要求,可能需要一段时间才能执行。

您认为的第二次点击操作很可能实际上是第一次点击回调接收响应并在DOM上执行行删除。

要确认这一点,我建议您点击删除图片一次,然后等待。我不知道你已经设定了什么超时,但两分钟应该是一个更糟糕的情况,等待足够长。

答案 1 :(得分:0)

点击后您应该等待一段时间,然后查看开发人员工具中的网络标签,确认您是否收到了数据。

如果一切正确,那么你最近会得到数据。