You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							103 lines
						
					
					
						
							3.3 KiB
						
					
					
				
			
		
		
	
	
							103 lines
						
					
					
						
							3.3 KiB
						
					
					
				<html> | 
						|
	<head> | 
						|
		<title>Disconnect multiple events from the same trigger</title> | 
						|
		<script type="text/javascript"> | 
						|
			// Dojo configuration | 
						|
			djConfig = {  | 
						|
				isDebug: true | 
						|
			}; | 
						|
		</script> | 
						|
		<script type="text/javascript"  | 
						|
			src="../../dojo.js"></script> | 
						|
		<script type="text/javascript"> | 
						|
			dojo.require("dojo.event.*"); | 
						|
 | 
						|
		/*****  after advice *******/ | 
						|
			var a = { | 
						|
				click: function(e) { | 
						|
					// all event connects here | 
						|
					dojo.debug("---------------------------------------------"); | 
						|
					dojo.debug("After button clicked"); | 
						|
				}, | 
						|
				disc1: function(){  | 
						|
					dojo.debug("disconnect after 1"); | 
						|
					dojo.event.disconnect("after", a, "click", a, "disc1"); | 
						|
				}, | 
						|
				disc2: function(){ | 
						|
					dojo.debug("disconnect after 2"); | 
						|
					dojo.event.disconnect("after", a, "click", a, "disc2"); | 
						|
				}, | 
						|
				disc3: function(){  | 
						|
					dojo.debug("disconnect after 3"); | 
						|
					dojo.event.disconnect("after", a, "click", a, "disc3"); | 
						|
				}, | 
						|
				disc4: function(){  | 
						|
					dojo.debug("disconnect after 4"); | 
						|
					dojo.event.disconnect("after", a, "click", a, "disc4"); | 
						|
				}, | 
						|
				disc5: function(){  | 
						|
					dojo.debug("disconnect after 5");  | 
						|
					dojo.event.disconnect("after", a, "click", a, "disc5"); | 
						|
				} | 
						|
			}; | 
						|
 | 
						|
			dojo.addOnLoad(function(){ | 
						|
				dojo.event.connect("after", a, "click", a, "disc1"); | 
						|
				dojo.event.connect("after", a, "click", a, "disc2"); | 
						|
				dojo.event.connect("after", a, "click", a, "disc3"); | 
						|
				dojo.event.connect("after", a, "click", a, "disc4"); | 
						|
				dojo.event.connect("after", a, "click", a, "disc5"); | 
						|
			}); | 
						|
 | 
						|
		/**** before advice ********/ | 
						|
			var b = { | 
						|
				click: function(e) { | 
						|
					// all event connects here | 
						|
					dojo.debug("Before button clicked"); | 
						|
					dojo.debug("---------------------------------------------"); | 
						|
				}, | 
						|
				disc1: function(){  | 
						|
					dojo.debug("disconnect before 1"); | 
						|
					dojo.event.disconnect("before", b, "click", b, "disc1"); | 
						|
				}, | 
						|
				disc2: function(){ | 
						|
					dojo.debug("disconnect before 2"); | 
						|
					dojo.event.disconnect("before", b, "click", b, "disc2"); | 
						|
				}, | 
						|
				disc3: function(){  | 
						|
					dojo.debug("disconnect before 3"); | 
						|
					dojo.event.disconnect("before", b, "click", b, "disc3"); | 
						|
				}, | 
						|
				disc4: function(){  | 
						|
					dojo.debug("disconnect before 4"); | 
						|
					dojo.event.disconnect("before", b, "click", b, "disc4"); | 
						|
				}, | 
						|
				disc5: function(){  | 
						|
					dojo.debug("disconnect before 5");  | 
						|
					dojo.event.disconnect("before", b, "click", b, "disc5"); | 
						|
				} | 
						|
			}; | 
						|
 | 
						|
			dojo.addOnLoad(function(){ | 
						|
				dojo.event.connect("before", b, "click", b, "disc1"); | 
						|
				dojo.event.connect("before", b, "click", b, "disc2"); | 
						|
				dojo.event.connect("before", b, "click", b, "disc3"); | 
						|
				dojo.event.connect("before", b, "click", b, "disc4"); | 
						|
				dojo.event.connect("before", b, "click", b, "disc5"); | 
						|
			}); | 
						|
 | 
						|
		</script> | 
						|
	</head> | 
						|
	<body> | 
						|
		<h3>Disconnect many events from the trigger function</h3> | 
						|
		<h4>You shouldnt get any 'Null argument to unrollAdvice()' when clicking buttons</h4> | 
						|
		Test passes if it outputs like below, but only on first click<br/> | 
						|
		disconnect [after|before] 1<br/> | 
						|
		disconnect [after|before] 2<br/> | 
						|
		disconnect [after|before] 3<br/> | 
						|
		disconnect [after|before] 4<br/> | 
						|
		disconnect [after|before] 5<br/> | 
						|
		<button onclick="a.click();">Disconnect 5 (after) listeners in one click</button><br> | 
						|
		<button onclick="b.click();">Disconnect 5 (before) listeners in one click</button>  | 
						|
	</body> | 
						|
</html>
 | 
						|
 |