1
reus 2011-07-23 00:16:05 +08:00
“只触发其中一个事件,两个方法都要有”什么意思?
如果想顺序可以用queue机制 |
2
sparklo 2011-07-23 00:20:19 +08:00
click事件只有一个, 你不加条件判断怎么可能想让他区别两种回应呢?
|
3
chone 2011-07-23 03:59:41 +08:00
在不需要的触发的时候删除掉handler
var handlerA = function() {alert('a');}; var handlerB = function() {alert('b');}; var btn = $("btn1"); // fire a btn.bind('click', handlerA); // fire b btn.unbind('click', handlerA); btn.bind('click', handlerB); 或者加一个条件变量,当'click'事件被触发的时候再判断是否执行handler var fireA = true; var handlerA = function() {if (!fireA) return; alert('a');}; var handlerB = function() {fi (fireA) return; alert('b');}; // fire handler b fireA = false; |
4
avatasia OP |
5
ashchan 2011-07-23 18:57:10 +08:00
如果你只是想让每次点击时,只响应两个回调中的一个(换句话说两个方法轮流执行),那么只要用toggle就行:
$("#btn1").toggle(function(){ /*handler 1*/ }, function(){ /*handler 2*/ }); |
6
yangg 2011-07-23 20:08:09 +08:00
$("#btn1").click(function(e){
alert('a'); e.stopImmediatePropagation(); }); |