Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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
Php Can';t将事件绑定到动态创建的元素_Php_Jquery_Dynamic_Event Handling - Fatal编程技术网

Php Can';t将事件绑定到动态创建的元素

Php Can';t将事件绑定到动态创建的元素,php,jquery,dynamic,event-handling,Php,Jquery,Dynamic,Event Handling,我在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="Addres

我在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>
这个html页面所做的是,点击“adres”表单的“Address”按钮,一些post数据被发送到另一个php页面,该页面在弹出窗口上显示基于发送数据的信息,如div(样式为display:none)fadeIn from 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>

函数submitForm(){
var data=$(“#adres”).serializeArray();
/*警报(数据)*/
数据推送(
{
名称:'sname',值:$(“#title”).val()
}
);
$.post(“geteditdata.php”,数据,
功能(数据){
$(“#结果”).html(数据);
positionPopup();
$(“#结果”)。法代因(1000);
}
)
返回false;
}
函数positionPopup(){
$(“#结果”).css({
左:($(窗口).width()-$('#结果').width())/2,
顶部:($(窗口).width()-$('#结果').width())/2,
位置:'绝对'
});
}
$(“#divclose”).live('click',function(){
美元(“#结果”)。淡出(500);
});
i、 e editstaff.php中带有获取数据的div将弹出如下结构:

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

一些价值观
到目前为止,一切都进展顺利。但是,当我单击弹出div上的“关闭”链接时,div并没有以$(“#divclose”)关闭(淡出)。单击(函数()

为什么这种情况没有发生? 有人能给我一个解决办法吗? 我给一个演示页面,你可以看到在实际问题

  • 请访问和
  • 在“按名称搜索”字段中填写“Afsar”,然后
  • 然后按“显示”
  • 页面加载后,请按页面底部的“地址”按钮
  • 然后将显示一个弹出div,其中将有一个名为“Close”的链接
  • 按下那个按钮,请检查为什么这个div没有在那里消失
  • 当我使用jquery版本1.3时,我使用了$(“#divclose”).live方法而不是$(selector).on方法。 任何帮助都将不胜感激

    在geteditdata.php中,只有以下代码:

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


    您使用的是非常旧的jQuery 1.2.3(它不是jq 1.3),我不确定该版本中是否存在.live。因此有两件事:

  • 使用新的jQuery(我建议使用1.9)
  • 使用.on而不是.live(了解一下,语法有点不同)
  • 代码应该是这样的:

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

    您可以使用绑定事件时存在的其他容器代替“body”。

    它现在正在工作。只需添加$(document).ready(function(){………});无论它是body还是$(selector)处的另一个容器。on(。。。。。。。。。。。。。。。
    $("body").on('click', "#divclose", function(){
      $("#result").fadeOut(500);
    });