Javascript 为什么我的div在一些AJAX调用之后消失了?
我有一个问题,我正在痛苦的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个小时,这很烦人 这是我的代码: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组不需要上传器。当用户单击铅笔图标时,
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>