我在editstaff.php中有以下html结构:
<div id="result" style="display:none">This is result div</div>
<form id="adres" onsubmit="return submitForm();">
<input type="hidden" name="type" value="adrs" />
<input type="submit" value="Address" /></form>
以内联式:
#result{
position: absolute;
border: 5px solid gray;
padding: 10px;
background: white;
width: 270px;
height: 190px;
}
这个html页面做了什么,点击“地址”按钮的“adres”表格,一些帖子数据被发送到另一个php页面,该页面显示基于发送数据的信息,如同一个弹出式div(显示的样式: none)fadeIn来自display:none。用于此目的的javascript / jquery代码如下:
<script>
function submitForm(){
var data=$("#adres").serializeArray();
/* alert(data); */
data.push(
{
name:'sname',value:$("#title").val()
}
);
$.post("geteditdata.php",data,
function(data){
$("#result").html(data);
positionPopup();
$("#result").fadeIn(1000);
}
)
return false;
}
function positionPopup(){
$("#result").css({
left: ($(window).width() - $('#result').width()) / 2,
top: ($(window).width() - $('#result').width()) / 2,
position:'absolute'
});
}
$("#divclose").live('click',function(){
$("#result").fadeOut(500);
});
</script>
即editstaff.php中带有获取数据的div将弹出如下结构:
<div id="result">
some_value
<a href="#" id="divclose">Close</a>
</div>
在这个阶段,一切都还好。但是当我点击弹出div上的“关闭”链接时,div没有用$(“#divclose”)关闭(fadeOut)。单击(function()
为什么在这种情况下不会发生这种情况? 任何人都能为我解决问题吗? 我正在提供一个演示页面,您可以在实际中看到问题。
当我使用jquery 1.3版时,我使用了$(“#divclose”)。live方法而不是$(selector).on方法。 任何帮助将不胜感激。
在geteditdata.php中只有这段代码:
<?php
echo $_POST['sname'];
?>
<br /><br /><a href="#" id="divclose">Close Here</a>
答案 0 :(得分:0)
你正在使用非常古老的jQuery 1.2.3(它不是jq 1.3),我不确定该版本中是否存在.live。所以有两件事:
代码看起来应该是这样的:
$("body").on('click', "#divclose", function(){
$("#result").fadeOut(500);
});
您可以使用在绑定事件时存在的其他容器,而不是“正文”。