-
$("input:first").click(function(event,bottonName){ bottonName = bottonName || "first" update($("span:first"),$("span:last"),bottonName); }); $("button:last").click(function(){ $("button:first").trigger("click","last"); }); 众所周知类似于mousedown、click、keydown等等这类型的事件都是浏览器提供的,通俗叫原生事件,这类型的事件是需要有交互行为才能被触发。 在jQuery通过on方法绑定一个原生事件 $('#elem').on('click', function() { alert("触发系统事件") }); alert需要执行的条件:必须有用户点击才可以。如果不同用户交互是否能在某一时刻自动触发该事件呢? 正常来说是不可以的,但是jQuery解决了这个问题,提供了一个trigger方法来触发浏览器事件 所以我们可以这样: $('#elem').trigger('click'); 在绑定on的事件元素上,通过trigger方法就可以调用到alert了,挺简单! 再来看看.trigger是什么? 简单来讲就是:根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为 trigger除了能够触发浏览器事件,同时还支持自定义事件,并且自定义时间还支持传递参数 $('#elem').on('Aaron', function(event,arg1,arg2) { alert("自触自定义时间") }); $('#elem').trigger('Aaron',['参数1','参数2']) trigger触发浏览器事件与自定义事件区别? 自定义事件对象,是jQuery模拟原生实现的 自定义事件可以传递参数 function update(first,last,bottonName){ first.text(bottonName); var n = parseInt(last.text(),10); last.text(n + 1); }查看全部
-
事件对象的属于与方法有很多,但是我们经常用的只有那么几个,这里我主要说下作用与区别 event.type:获取事件的类型 触发元素的事件类型 $("a").click(function(event) { alert(event.type); // "click"事件 }); event.pageX 和 event.pageY:获取鼠标当前相对于页面的坐标 通过这2个属性,可以确定元素在当前页面的坐标值,鼠标相对于文档的左边缘的位置(左边)与 (顶边)的距离,简单来说是从页面左上角开始,即是以页面为参考点,不随滑动条移动而变化 event.preventDefault() 方法:阻止默认行为 这个用的特别多,在执行这个方法后,如果点击一个链接(a标签),浏览器不会跳转到新的 URL 去了。我们可以用 event.isDefaultPrevented() 来确定这个方法是否(在那个事件对象上)被调用过了 event.stopPropagation() 方法:阻止事件冒泡 事件是可以冒泡的,为防止事件冒泡到DOM树上,也就是不触发的任何前辈元素上的事件处理函数 event.which:获取在鼠标单击时,单击的是鼠标的哪个键 event.which 将 event.keyCode 和 event.charCode 标准化了。event.which也将正常化的按钮按下(mousedown 和 mouseupevents),左键报告1,中间键报告2,右键报告3 event.currentTarget : 在事件冒泡过程中的当前DOM元素 冒泡前的当前触发事件的DOM对象, 等同于this. this和event.target的区别: js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素; .this和event.target都是dom对象 如果要使用jquey中的方法可以将他们转换为jquery对象。比如this和$(this)的使用、event.target和$(event.target)的使用; event.stopPropagation()阻止向上冒泡查看全部
-
当使用的是this时它指引的对象是其本身! $("ul").on('click',function(e){ alert('触发的元素是内容是: ' + this.textContent) })既是这里指的是ul! $("ul").on('click',function(e){ alert('触发的元素是内容是: ' + e.target.textContent) })这里的e.target指的是每个被触发的li查看全部
-
通过.on()绑定的事件处理程序 通过off() 方法移除该绑定 根据on绑定事件的一些特性,off方法也可以通过相应的传递组合的事件名,名字空间,选择器或处理函数来移除绑定在元素上指定的事件处理函数。当有多个过滤参数时,只有与这些参数完全匹配的事件处理函数才会被移除 绑定2个事件 $("elem").on("mousedown mouseup",fn) 删除一个事件 $("elem").off("mousedown") 删除所有事件 $("elem").off("mousedown mouseup") 快捷方式删除所有事件,这里不需要传递事件名了,节点上绑定的所有事件讲全部销毁 $("elem").off()查看全部
-
还是on方法,这是利用了on的另一个事件机制委托的机制衍变而来的 委托机制 .on( events ,[ selector ] ,[ data ], handler(eventObject) ) 在on的第二参数中提供了一个selector选择器,简单的来描述下 参考下面3层结构 <div class="left"> <p class="aaron"> <a>目标节点</a> //点击在这个元素上 </p> </div> 给出如下代码: $("div").on("click","p",fn) 事件绑定在最上层div元素上,当用户触发在a元素上,事件将往上冒泡,一直会冒泡在div元素上。如果提供了第二参数,那么事件在往上冒泡的过程中遇到了选择器匹配的元素,将会触发事件回调函数 当有了 【select】时事件在div上就不会再执行了。只有在这个特定的select发生触发动作事件才会执行!查看全部
-
基本用法:.on( events ,[ selector ] ,[ data ] ) 最常见的给元素绑定一个点击事件,对比一下快捷方式与on方式的不同 $("#elem").click(function(){}) //快捷方式 $("#elem").on('click',function(){}) //on方式 多个事件绑定同一个函数 $("#elem").on("mouseover mouseout",function(){ }); 通过空格分离,传递不同的事件名,可以同时绑定多个事件 多个事件绑定不同函数 $("#elem").on({ mouseover:function(){}, mouseout:function(){}, }); 通过空格分离,传递不同的事件名,可以同时绑定多个事件,每一个事件执行自己的回调方法 将数据传递到处理程序 function greet( event ) { alert( "Hello " + event.data.name ); //Hello 慕课网 } $( "button" ).on( "click", { name: "慕课网" }, greet ); 可以通过第二参数(对象),当一个事件被触发时,要传递给事件处理函数的查看全部
-
提交表单是一个最常见的业务需求,比如用户注册,一些信息的输入都是需要表单的提交。同样的有时候开发者需要在表单提交的时候过滤一些的数据、做一些必要的操作(例如:验证表单输入的正确性,如果错误就阻止提交,从新输入)此时可以通过submit事件,监听下提交表单的这个动作 通过在<form>元素上绑定submit事件,开发者可以监听到用户的提交表单的的行为 具体能触发submit事件的行为: <input type="submit"> <input type="image"> <button type="submit"> 当某些表单元素获取焦点时,敲击Enter(回车键)查看全部
-
<input>元素,<textarea>和<select>元素的值都是可以发生改变的,开发者可以通过change事件去监听这些改变的动作 input元素 监听value值的变化,当有改变时,失去焦点后触发change事件。对于单选按钮和复选框,当用户用鼠标做出选择时,该事件立即触发。 select元素 对于下拉选择框,当用户用鼠标作出选择时,该事件立即触发 textarea元素 多行文本输入框,当有改变时,失去焦点后触发change事件查看全部
-
focusin或focusout可以冒泡触发事件,既是父元素有事件,当其子元素也发生相同事件时会触发父元素的事件! focus和blur不能进行冒泡处理!!!!查看全部
-
focusout:失焦事件, $ele.focusout([eventData],hander)第一个参数是一个数据参数,是为了解决不同作用域下的数据传递问题! 亦可不要数据参数,直接是回调函数!查看全部
-
$ele.focusin()获得焦点事件! $ele.focusin([eventData],handler)第一个是数据参数,为的是解决不同作用域下数据传递的问题。查看全部
-
$(ele).mouseenter(function(){ $(this).css("background", '#bbffaa'); }) $(ele).mouseleave(function(){ $(this).css("background", 'red'); }) 替换: $("p").hover( function() { $(this).css("background", 'red'); }, function() { $(this).css("background", '#bbffaa'); } ); $(selector).hover(handlerIn, handlerOut) handlerIn(eventObject):当鼠标指针进入元素时触发执行的事件函数 handlerOut(eventObject):当鼠标指针离开元素时触发执行的事件函数查看全部
-
只要在后代有了切换。mouseover或mouseout哪怕是从空“越”到实处或“离开”实处都会使得事件被触发,只有mouseenter或mouseleave才是把事件触发绑定在自己身上查看全部
-
mousedown强调是按下触发 如果在一个元素按住了鼠标不放,并且拖动鼠标离开这个元素,并释放鼠标键,这仍然是算作mousedown事件 任何鼠标按钮被按下时都能触发mousedown事件 用event 对象的which区别按键,敲击鼠标左键which的值是1,敲击鼠标中键which的值是2,敲击鼠标右键which的值是3 mouseup强调是松手触发,与mousedown是相反的 mouseup与mousedown组合起来就是click事件 如果用户在一个元素上按下鼠标按键,并且拖动鼠标离开这个元素,然后释放鼠标键,这仍然是算作mouseup事件 任何鼠标按钮松手时都能触发mouseup事件 用event 对象的which区别按键,敲击鼠标左键which的值是1,敲击鼠标中键which的值是2,敲击鼠标右键which的值是3查看全部
-
因为trigger会触发浏览器的默认行为 即input的聚焦行为,此时是不能将input设置title值的;而triggerHandler不会触发浏览器的默认行为 即input的聚焦行为,此时是可以将input设置title值的查看全部
举报
0/150
提交
取消