【问题标题】:Dropzone not showing when using jquery post使用 jquery post 时不显示 Dropzone
【发布时间】:2014-02-24 00:18:16
【问题描述】:

我有一个从服务器接收数据并显示 dropzone.js 表单的函数,

function requestData() {
    // showDropzone();   // displaying dropzone from here works,
    $.post("/userids/",null, function(data, status) {
        jsonarray = JSON.parse(data);
        showDropzone(); // here, it calls the function but dropzone is not displayed
    });
}

function showDropzone(){
    $("#content").html('<form id="dropzone" action="/target" class="dropzone"></form>');
}

当我从 post 方法内部调用它时,Dropzone 不显示,但是当我从它外部调用它时它会显示。我不知道是什么原因造成的,没有错误或警告,我已经尝试了所有可能的 dropzone 配置,但即使 forceFallback 设置为 true 也不起作用。

编辑: 这是完整的html,

<html>
<head>
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width">
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script type="text/javascript" src="dropzone.js"></script>
</head>
<body>
    <div id="container">
        <div id="content"></div>
    </div>

    <script type="text/javascript">
        $(document).ready(function(){
            requestData();
        });

        function requestData() {
            // showDropzone();   // displaying dropzone from here works,
            $.post("/userids/",null, function(data, status) {
                jsonarray = JSON.parse(data);
                showDropzone(); // here, it calls the function but dropzone is not displayed
            });
        }

        function showDropzone(){
            $("#content").html('<form id="dropzone" action="/target" class="dropzone"></form>');
        }
    </script>
</body>
</html>

【问题讨论】:

  • 你有console.log(); '编辑?在 showDropzone() 中插入一个;和一个进入后响应。 PS:显示html代码(欢迎使用jsfiddle):)
  • 一切都按预期调用,只有从 $.post 内部调用时,dropzone 表单没有显示。

标签: javascript jquery dropzone.js


【解决方案1】:

:D 我敢打赌 form#dropzone 添加到了#content,但你看不到它...因为它是空的!! (里面没有输入):D 看看我的小提琴!

http://jsfiddle.net/U5wCw/

将您的代码更改为

$("#content").html('<form id="dropzone" action="/target" class="dropzone"><input type="text"/></form>');

【讨论】:

  • 你检查我的答案了吗? :)
  • 它不起作用。我猜这个问题比这要复杂一些。
  • JSON.parse 需要字符串作为参数 - 我敢打赌你知道这一点,但我必须问! :) data (at line jsonarray = JSON.parse(data);) 是一个字符串吗? :) 第二次猜测将函数 showDropzone 的名称更改为 showDropzoneXXX 然后检查。我又做了一个小提琴,但我没有包括 dropzone.js (jsfiddle.net/sE7um/10)。告诉我从哪里下载?
  • 如果我取出 showDropbox() 函数,代码运行良好,当我将函数放在 $.post 处理程序之前,代码运行良好。只有当我在 $.post 中使用它时,dropzone.js 才会显示任何内容,即便如此,其余代码仍然有效。 Dropzone 可在dropzonejs.com 获得
  • jsfiddle.net/sE7um/12 现在完全是你的代码了!!我什至包括了 dropzone.js。请在您的代码中使用 JSON.parse 注释行并在此处粘贴变量数据的精确输出。
猜你喜欢
  • 1970-01-01
  • 2018-01-17
  • 2017-12-05
  • 1970-01-01
  • 2011-04-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-17
  • 2015-09-02
相关资源
最近更新 更多