jQuery --- 事件自动触发

一、trigger()

$(function(){
	$(".father").click(function(){
		console.log("father");
	})
	$(".father").trigger("click");
})

二、triggerHandler()

$(function(){
	$(".father").click(function(){
		console.log("father");
	})
	$(".father").triggerHandler("click");
})

区别一:trigger()自动触发事件,会触发事件冒泡,triggerHandler()则不会

一、trigger()

$(function(){ $("input[type='submit']").click(function(){}); $("input[type='submit']").trigger("click"); })

二、triggerHandler()

$(function(){ $("input[type='submit']").click(function(){}); $("input[type='submit']").triggerHandler("click"); })

区别二:trigger()自动触发事件,会触发默认行为,triggerHandler()自动触发事件,不会触发默认行为

注意:trigger()不会直接触发a标签的默认行为,如下例子

跳转

$(function(){
	$("a").click(function(){
		console.log("a标签");
	})
	$("a").trigger("click");
})

jQuery --- 事件自动触发_第1张图片
仅仅只触发了点击行为,打印了结果,但是并没有触发默认行为的跳转

解决方法:可以在a标签里面再加入其他标签,比如span标签,然后click绑定在span标签上,trigger()也是span标签的click,
这样的原理就是,span是a标签的子元素,先自动触发了span,然后trigger()又是会触发冒泡,所以会冒泡到a标签上,这时候a标签不会直接受trigger()影响,就会触发自己的默认行为,最后就会自动跳转


	跳转


$(function(){
	$("span").click(function(){
		console.log("span标签");
	})
	$("span").trigger("click");
})

你可能感兴趣的:(jQuery)