方法一
<a href="#" οnclick="detail(this,event.target);" ><a/>
function detail(a,b){
$(a)
}
方法二(用绑定事件)
在 JQuery 中,可以使用 bind 方法来为元素绑定事件,该方法的声明如下:
bind( type [, data], fn)
第一个参数:事件类型,如 click,blue;
第二个参数:成为 event.data 属性值,在事件处理器方法中,作为参数传递进来;
第三个参数:事件处理器方法;
<div id="m">abc</div> <script src="scripts/jquery.min.js"></script> <script language="javascript"> $("#m").bind("click", "theValue", function(e){ alert(e.data); }); </script>
上面的代码,是一个完整的例子,在这个例子中,我们可以看到 e.data 的值就是 theValue。
自定义事件如下可以注册一个自定义事件:
$("#m").bind(“myclick”, function(){
});
触发它,则使用:
$("#m").trigger(“myclick”);
结尾说一个之前没注意的地方:onload 事件不能同时指定两个事件处理器,但是 ready 事件是可以的。
参考http://www.cnblogs.com/luminji/p/3636233.html
ps:通过绑定事件阻止冒泡(阻止冒泡尽量放在方法的开始,不要放在大量业务代码的后面,可能会失效)
$("p").bind("click",function(event){
event.stopPropagation();
event.preventDefault();//阻止元素的默认行为,如<button type="submit">元素会默认提交表单
})
event.target-----获取到触发事件的元素
$("a[href='http://google.com']").click(function(event){
var tg=event.target;
alert(tg.href);
return false;//这种方法也能阻止事件默认行为,阻止链接跳转
})
输出:http://google.com
ps:
event和$(this)对象。
1.this和event.target的区别:
js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,
它永远是直接接受事件的目标DOM元素;
2.this和event.target都是dom对象,如果要使用jquey中的方法可以将他们转换
为jquery对象:$(this)和$(event.target);
比如:event.target和$(event.target)的使用:
- $('.delButton').click(function(e){
- //alert($(e.target).html());
- alert($(this).parent().html());
- $(this).parent().parent().remove();
- });
ps:
<a οnclick="viewBanner(id,event);" href="javascript:void(0);">查看</a>
function viewBanner(id,event) {
console.log(event)//鼠标事件
console.log(event.target)//事件作用的目标target
$("#new").modal("show");//bootstrap模态框手动调用
}