0

我在 firstpage.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="some_value" />
<input type="submit" value="Open" />
</form>

并采用内联样式:

#result{
position: absolute;
border: 5px solid gray;
padding: 10px;
background: white;
width: 270px;
height: 190px;
} 

这个html页面做什么,点击“adres”表单的“打开”按钮,一些帖子数据被发送到另一个php页面,该页面显示基于发送数据的信息,如div(其样式为display:none)fadeIn从显示:无。用于此目的的 javascript/jquery 代码如下:

function submitForm(){
  var data=$("#adres").serialize();
  $.post("anotherpage.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'
});
}

$(document).ready(function(){
  $("#divclose").click(function(){
    $(#result).fadeOut(500);
    return false;
});
});

在另一个page.php中:

<?php
echo $_POST['type'];
?>
<br /><a href="#" id="divclose">Close</a>

即 firstpage.php 中带有获取数据的 div 将弹出如下结构:

<div id="result">
some_value
<a href="#" id="divclose">Close</a>
</div>

到了这个阶段,一切都还好。但是,当我单击弹出 div 上的“关闭”链接时,div 没有关闭(淡出) $("#divclose").click(function() 为什么在这种情况下不会发生这种情况?

4

1 回答 1

0

您需要使用函数on()在动态创建的元素上绑定事件:

http://api.jquery.com/on/

$(document).ready(function(){
    $("body").on('click',"#divclose",function(){
        $('#result').fadeOut(500);
        return false;
    });
});

您在线上还有一个错字:$(#result).fadeOut(500);=>$('#result').fadeOut(500);

于 2013-03-30T08:48:35.847 回答