138-jquery事件委托和Dom操作

本文深入探讨了jQuery中的事件委托技术,解释了如何利用事件冒泡原理提高性能,并详细介绍了DOM操作的方法,包括元素的创建、移动、插入及样式修改等,为读者提供了丰富的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >





jquery事件委托和Dom操作


事件委托就是利用冒泡的原理,把事件加到父级上,
通过判断事件来源的子集,执行相应的操作,
事件委托首先可以极大减少事件绑定次数,提高性能,
其次可以让新加入的子元素也能拥有相同的操作.


$function(){
	//一般的事件绑定
	var $li=$('#list li');
	$li.click(function(){
	$(this).css({background:'red'});
	})

	//事件委托
	var $list=$('#list');
	$list.delegate('li','click',function(){
	$(this).css({background:'red'});
	})	
}





Dom操作
Dom操作也叫做元素节点操作,指的是改变html的标签结构
1.移动现有标签的位置
2.将新创建的标签插入到现有的标签中

创建新标签
var $div=$('<div>');
var $div=$('<div>My name is Alice.</div>');

来准备一些标签
<div>
	<p>aaa</p>
	<p>bbb</p>
	<p>ccc</p>
</div>

移入或者插入标签
append()

$(function(){
	var $div=$('#div');
	var $h1=$('h1');
	var $h2=$('h2');
	var $h3=$('h3');
	var $h4=$('h4');
	
	//append
	$div.append($h1);

	//appendTo
	$h1.appendTo($div);

	//prepend
	$div.prepend($h4);

	//prependTo
	$h4.prependTo($div);

	//after
	$div.after($p2);

	//insertAfter
	$p2.insertAfter($div);
	
})




操作列表
$(function(){
var $text=$('#text');
var $btn=$('#btn');
var $list=$('#list');

$btn.click(function(){
	var text=$text.val();
	
	//清空text
	$text.val('');
	
	var $li=$('<li>'+
	'<span> +text+ '</span>' +
	'</li>')

	$list.prepend($li);
	var $del=$li.find('.del');
	$del.click(function(){
		$(this).parent().remove();
	})
	
	})

	//删除操作
	var $del=$('.del');
	//删除点击事件绑定
	$del.click(function(){
		$(this).parent().remove();
	})

	//设置事件委托
	$list.delegate('a','click',function(){
	var str=$(this).prop('class');

	if(str==='del'){
	$(this).parent().remove();
	}

	if(str==='up'){
		if($(this).parent().prev().length===0){
		return
		}
	$(this).parent()
	.insertBefore($(this).parent().prev());
	}
	
	})
})





$('div').css('width');
$('div').css('width','30px');
$('div').addClass('divClass');
$('div').removeClass('divClass');

$('#btn').click(function(){
	$(this)
})

$('ul li').click(function(){

})

$(this).css({background:'red'});

alert($(this).index());




选项卡
$btn.click(function(){
	$(this).addClass('active').siblings()
	.removeClass('active');
	$div.eq($(this).index())
	.addClass('current')
	.siblings()
	.removeClass('current');
})


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值