jQuery - 替换图像,保留事件处理程序

时间:2009-07-29 21:17:25

标签: javascript jquery html

我目前有一个jQuery函数,可以在单击时替换图像。例如:

  <script type="text/javascript">

  $('#test').click(function(event) {
  event.preventDefault();
  img = $('<img id="myImage" class="photo" src="newImage.jpg>');
  $("#myImage").remove().append(img);
  });

   $('#myImage').click(function(event) {
  event.preventDefault();
  alert("You clicked the image");
  </script>

我的HTML如下:

<a id="test">Click Here to Change Picture</a>

 <div id="profilepic" class="fb6a">
      <img id="myImage" class="photo" src="oldImage.jpg>
 </div>

所以,我注意到,我“改变”图片并用新的“图像”替换它,我丢失了与新图像相关的事件处理程序,即使它具有相同的“ID”。

有什么方法可以避免这种情况吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

不能完全记住HTML DOM中事件冒泡的方式,但是你不能将点击处理程序附加到周围的div吗?那个当然不会改变,它可以避免听起来像是某种泄漏。

答案 1 :(得分:0)

尝试live event