码迷,mamicode.com
首页 > Web开发 > 详细

Js为Dom元素绑定事件须知

时间:2014-11-25 18:03:50      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:blog   io   ar   java   on   div   问题   log   cti   

为异步加载的Dom 元素绑定事件必须在加载完成之后绑定:

$(‘body‘).load(‘LearnClickBinding.ashx‘);
$(‘a‘).click(function () { alert(‘I was clicked!‘); });

上面的绑定是无效的,因为异步加载需要时间,而在获取元素之前,早已执行了$(‘a‘).click();方法,所以绑定失败。

正确的做法是,等待元素加载完后再执行 $(‘a‘).click();

$(‘body‘).load(‘LearnClickBinding.ashx‘, function () {
	$(‘a‘).click(function () {
		alert(‘I was clicked!‘);
	});

});

  

Js为Dom元素绑定事件只能在页面刷新之前,也就是该Dom元素重新加载之前有效。尤其是在异步加载Dom元素的时候,就有这个问题。

$(‘body‘).load(‘LearnClickBinding.ashx‘, function () {
	$(‘a‘).click(function () {
      alert(‘I was clicked!‘);
	});

	$(‘body‘).empty();

	$("<a href=‘#‘>Click Me!</a>").appendTo(‘body‘);
});

这种绑定方式也是失败的,因为绑定事件的a元素已经被empty了,后面append的a元素是没有事件的,所以点击按钮依然没有效果。

正确的绑定方法:

$(‘body‘).load(‘LearnClickBinding.ashx‘, function () {
	$(‘a‘).click(function () {
		alert(‘I was clicked!‘);
	});

	$(‘body‘).empty();

	$("<a href=‘#‘>Click Me!</a>").appendTo(‘body‘);

	$(‘a‘).click(function () {
		alert(‘I was clicked!‘);
	});
});

  

Js为Dom元素绑定事件须知

标签:blog   io   ar   java   on   div   问题   log   cti   

原文地址:http://www.cnblogs.com/hoosway/p/4121342.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!