Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我的div在一些AJAX调用之后消失了?_Javascript_Jquery_Ajax - Fatal编程技术网

Javascript 为什么我的div在一些AJAX调用之后消失了?

Javascript 为什么我的div在一些AJAX调用之后消失了?,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个问题,我正在痛苦的4天了。我正在制作一个电影注册网页。我做了一个较小的测试项目来重建我得到的错误 divpingpong.php:我有3个div(A、B和C)和一个铅笔按钮。我首先在a#占位符div中的div B中包含一个上传程序(当页面加载时)。我想多次使用这个占位符。例如,如果用户切换到div B,我希望使用javascript使上传程序可见。我使用jQuery.appendTo函数将#占位符移动到我想要的位置,然后使用.show()将其显示。A组不需要上传器。当用户单击铅笔图标时,

我有一个问题,我正在痛苦的4天了。我正在制作一个电影注册网页。我做了一个较小的测试项目来重建我得到的错误

divpingpong.php:我有3个div(A、B和C)和一个铅笔按钮。我首先在a#占位符div中的div B中包含一个上传程序(当页面加载时)。我想多次使用这个占位符。例如,如果用户切换到div B,我希望使用javascript使上传程序可见。我使用jQuery.appendTo函数将#占位符移动到我想要的位置,然后使用.show()将其显示。A组不需要上传器。当用户单击铅笔图标时,我想显示divc,其中包含由AJAX加载的内容,并将上传程序移动到其中。在切换回div B时,我希望#占位符移回div B

div\u ccontent.php:这是一个文件,由AJAX调用,内容为div C。它还包含某种JS代码,有助于(或至少有意)将上传程序移动到正确的位置

问题:经过几次(超过1次)AJAX调用后,我的整个占位符div似乎完全消失了。它不能消失,因为我想用它在数据输入(用div B表示)和数据操作(用div C表示)上传图片。我知道这不是最好的编程方法,但我不擅长编写好的代码。此程序仅适用于家庭使用

我的研究:我尝试了所有可能的解决方案和所有相关的谷歌搜索词(包括Stackoverflow),但没有成功。我在上找到了一个关于使用eval()函数运行JS的有用链接,该链接来自AJAX请求,但对我也没有帮助。我尝试了可能的解决方案,搜索了大约7-8个小时,这很烦人

这是我的代码:
divpingpong.php:


乒乓球
$(文档).ready(函数(){
var ajaxfile=“div_ccontent.php”;
函数切换页(){
//$(“#div_a”).toggle(0);//如果我们想确保显示是相反的(显示->隐藏,隐藏->显示)
var val=$(this.val();
$(“#div_”+val).show();
如果(val=“a”)
$(“#div#b,#div#c”).hide();
否则,如果(val==“b”){
$(“#分区a,#分区c”).hide();
var parentid=$(“#占位符”).parent().attr(“id”);
var exists=$(“#占位符”).length;
if(parentid!=“div_b”){
$(“#占位符”).appendTo($(“#div_b”)).show();
//$(“#上传_帧”).attr(“src”,”).hide();
}
}
}
函数domod(){
$(“#div_a”).hide();
$(“#div_b”).hide();
$(“#div_c”).show();
$.post(ajaxfile,{sid:Math.random},函数(valasz){
$(“#div_c”).html(valasz);
$(“#div_c”)。查找(“脚本”)。每个(函数(i){
eval($(this.text());
});
});
}
$(“#div_b”).hide();
$(“#div_c”).hide();
$(“#选择面板”)。更改(切换页面);
$(“img.pencil”).live(“click”,domod);
});
模拟铅笔:悬停{
光标:指针;
}
Div乒乓球,即用AJAX调用替换Div
A组
B组
A组

这是快速搜索的地方。字段集中只有几行的表格中有一定数量的文本。
它永远不会包含特定的占位符div。

B组 这是数据输入的地方。字段集中只有几行的表格中有一定数量的文本。
然后,上传程序进入#占位符:

修改
div_ccontent.php:


C组

这是进行数据操作的地方。字段集中只有几行的表格中有少量文本。
然后,上传程序进入#占位符:

占位符是否存在?(1-是,0-否)

var parentid=$(“#占位符”).parent().attr(“id”); var exists=$(“#占位符”).length; if(parentid!=“div_c”){ $(“#占位符”).appendTo($(“#div_c”)).show(); //$(“#上传_帧”).attr(“src”,”).hide(); } $(“#附加信息”).append(存在);

我想不出有什么问题。为什么那个div消失了?如果可以,请回答。任何帮助都将不胜感激。

您在哪里设置此
var parentid=$(“#占位符”).parent().attr(“id”)因为您隐藏了
div_b
,并且仅当出现此条件时才显示。如果从下拉菜单(选择)中选择了div_b,我将隐藏所有其他内容(如A),如果占位符的父项不是div_b,我将其移动到该位置。这是在divc的情况下不起作用的(第二次,通过AJAX加载)。
<?php
    @session_start();
    include_once("initial.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Div ping-pong</title>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script language="javascript" src="easytooltip/js/easyTooltip.js"></script>
    <script language="javascript" src="jsfv.js"></script>
    <script language="javascript">
        $(document).ready(function(){
            var ajaxfile="div_ccontent.php";

            function switchpage(){
                //$("#div_a").toggle(0);    //if we want to make sure the display is the opposite (show->hide, hide->show)
                var val=$(this).val();
                $("#div_"+val).show();
                if(val=="a")
                    $("#div_b, #div_c").hide();
                else if(val=="b"){
                    $("#div_a, #div_c").hide();
                    var parentid=$("#placeholder").parent().attr("id");
                    var exists=$("#placeholder").length;
                    if(parentid!="div_b"){
                        $("#placeholder").appendTo($("#div_b")).show();
                        //$("#upload_frame").attr("src", "").hide();
                    }
                }
            }

            function domod(){
                $("#div_a").hide();
                $("#div_b").hide();
                $("#div_c").show();
                $.post(ajaxfile, {sid: Math.random}, function(valasz){
                    $("#div_c").html(valasz);
                    $("#div_c").find("script").each(function(i){
                        eval($(this).text());
                    });
                });
            }

            $("#div_b").hide();
            $("#div_c").hide();
            $("#selectpanel").change(switchpage);
            $("img.pencil").live("click",domod);
        });
    </script>
    <style type="text/css">
        img.pencil:hover{
            cursor: pointer;
        }
    </style>
</head>
<body>
    <h3>Div ping-pong, that is replace a div with AJAX calls</h3>
    <select id="selectpanel">
        <option value="a">Div A</option>
        <option value="b">Div B</option>
    </select>
    <div id="div_a">
        <b>Div A</b>
        <p>
            This is the place for quick search. There is some amount of text in a table with a few rows, which is in a fieldset.<br />
            This will never contain the certain #placeholder div.
        </p>
    </div>
    <div id="div_b">
        <b>Div B</b>
        <p>
            This is the place for data input. There is some amount of text in a table with a few rows, which is in a fieldset.<br />
            Then, comes the uploader in #placeholder:
            <div id="placeholder"><?php include_once("upload.php"); ?></div>
        </p>
    </div>
    <div id="div_c">
    </div>
    Modify <img class="pencil" src="img/modositas.png" alt="módosítás" />
</body>
</html>
<?php
    session_start();
    $included=strtolower(realpath(__FILE__))!=strtolower(realpath($_SERVER["SCRIPT_FILENAME"]));
    if(!$included && !isset($_POST["sid"])) header("Content-type: text/html; charset=utf-8");
    if(isset($_POST["sid"])) include_once("initial.php");
?>
<b>Div C</b>
<p>
    This is the place for data manipulation. There is a little amount of text in a table with a few rows, which is in a fieldset.<br />
   Then, comes the uploader in #placeholder:
</p>
<p id="additionalinfo">Does the #placeholder exist? (1-yes, 0-no) </p>
<script language="javascript">
    var parentid=$("#placeholder").parent().attr("id");
    var exists=$("#placeholder").length;
    if(parentid!="div_c"){
        $("#placeholder").appendTo($("#div_c")).show();
        //$("#upload_frame").attr("src", "").hide();
    }
    $("#additionalinfo").append(exists);
</script>