Changeset 1378
- Timestamp:
- 05/20/08 03:24:01 (4 months ago)
- Files:
-
- mochikit/trunk/MochiKit/Signal.js (modified) (1 diff)
- mochikit/trunk/doc/html/MochiKit/Signal.html (modified) (5 diffs)
- mochikit/trunk/doc/rst/MochiKit/Signal.rst (modified) (4 diffs)
- mochikit/trunk/packed/MochiKit/MochiKit.js (modified) (1 diff)
- mochikit/trunk/tests/test_Signal.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
mochikit/trunk/MochiKit/Signal.js
r1319 r1378 658 658 } 659 659 ident.connected = false; 660 // check isDOM661 if (!ident.isDOM) {662 return;663 }664 660 var src = ident.source; 665 661 var sig = ident.signal; 666 662 var listener = ident.listener; 667 663 // check isDOM 664 if (!ident.isDOM) { 665 if (typeof(src.__disconnect__) == 'function') { 666 src.__disconnect__(ident, sig, ident.objOrFunc, ident.funcOrStr); 667 } 668 return; 669 } 668 670 if (src.removeEventListener) { 669 671 src.removeEventListener(sig.substr(2), listener, false); mochikit/trunk/doc/html/MochiKit/Signal.html
r1276 r1378 5 5 <head> 6 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 7 <meta name="generator" content="Docutils 0.4 : http://docutils.sourceforge.net/" />7 <meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" /> 8 8 <title>MochiKit.Signal - Simple universal event handling</title> 9 9 … … 209 209 <p>In MochiKit 1.4+, if <tt class="docutils literal"><span class="pre">src</span></tt> is an object that has a <tt class="docutils literal"><span class="pre">__connect__</span></tt> 210 210 method, then <tt class="docutils literal"><span class="pre">src.__connect__(ident,</span> <span class="pre">signal,</span> <span class="pre">objOrFunc,</span> <span class="pre">funcOrStr)</span></tt> 211 will be called. Th is method may be used to disconnect the signal.212 DOM objects can not implement this feature.</p>211 will be called. The <tt class="docutils literal"><span class="pre">__connect__</span></tt> method is allowed to disconnect 212 the signal. DOM objects can not implement this feature.</p> 213 213 <dl class="docutils"> 214 214 <dt><em>Availability</em>:</dt> … … 223 223 <a class="mochiref reference" href="#fn-connect">connect()</a>. This is similar to how the browser's 224 224 <tt class="docutils literal"><span class="pre">setTimeout</span></tt> and <tt class="docutils literal"><span class="pre">clearTimeout</span></tt> works.</p> 225 <p>In MochiKit 1.4+, if the signal source is an object that has a 226 <tt class="docutils literal"><span class="pre">__disconnect__</span></tt> method, then 227 <tt class="docutils literal"><span class="pre">src.__disconnect__(ident,</span> <span class="pre">signal,</span> <span class="pre">objOrFunc,</span> <span class="pre">funcOrStr)</span></tt> 228 will be called. DOM objects can not implement this feature.</p> 225 229 <dl class="docutils"> 226 230 <dt><em>Availability</em>:</dt> … … 232 236 <a class="mochidef reference" href="#fn-disconnectall">disconnectAll(src[, signal, ...])</a>:</p> 233 237 <blockquote> 238 <p>Removes a set of signals from <tt class="docutils literal"><span class="pre">src</span></tt>, similar to calling 239 <a class="mochiref reference" href="#fn-disconnect">disconnect(ident)</a> for each one.</p> 234 240 <p><tt class="docutils literal"><span class="pre">disconnectAll(src)</span></tt> removes all signals from src.</p> 235 241 <p><tt class="docutils literal"><span class="pre">disconnectAll(src,</span> <span class="pre">'onmousedown',</span> <span class="pre">'mySignal')</span></tt> will remove all … … 244 250 <a class="mochidef reference" href="#fn-disconnectallto">disconnectAllTo(dest[, func])</a>:</p> 245 251 <blockquote> 252 <p>Removes a set of signals connected to <tt class="docutils literal"><span class="pre">dest</span></tt>, similar to calling 253 <a class="mochiref reference" href="#fn-disconnect">disconnect(ident)</a> for each one.</p> 246 254 <p><tt class="docutils literal"><span class="pre">disconnectAllTo(dest)</span></tt> removes all signals connected to dest.</p> 247 255 <p><tt class="docutils literal"><span class="pre">disconnectAllTo(dest,</span> <span class="pre">func)</span></tt> will remove all mochikit/trunk/doc/rst/MochiKit/Signal.rst
r1230 r1378 234 234 In MochiKit 1.4+, if ``src`` is an object that has a ``__connect__`` 235 235 method, then ``src.__connect__(ident, signal, objOrFunc, funcOrStr)`` 236 will be called. Th is method may be used to disconnect the signal.237 DOM objects can not implement this feature.238 236 will be called. The ``__connect__`` method is allowed to disconnect 237 the signal. DOM objects can not implement this feature. 238 239 239 *Availability*: 240 240 Available in MochiKit 1.3.1+ … … 247 247 ``setTimeout`` and ``clearTimeout`` works. 248 248 249 In MochiKit 1.4+, if the signal source is an object that has a 250 ``__disconnect__`` method, then 251 ``src.__disconnect__(ident, signal, objOrFunc, funcOrStr)`` 252 will be called. DOM objects can not implement this feature. 253 249 254 *Availability*: 250 255 Available in MochiKit 1.3.1+ … … 252 257 253 258 :mochidef:`disconnectAll(src[, signal, ...])`: 259 260 Removes a set of signals from ``src``, similar to calling 261 :mochiref:`disconnect(ident)` for each one. 254 262 255 263 ``disconnectAll(src)`` removes all signals from src. … … 263 271 264 272 :mochidef:`disconnectAllTo(dest[, func])`: 273 274 Removes a set of signals connected to ``dest``, similar to calling 275 :mochiref:`disconnect(ident)` for each one. 265 276 266 277 ``disconnectAllTo(dest)`` removes all signals connected to dest. mochikit/trunk/packed/MochiKit/MochiKit.js
r1377 r1378 5196 5196 } 5197 5197 _564.connected=false; 5198 if(!_564.isDOM){5199 return;5200 }5201 5198 var src=_564.source; 5202 5199 var sig=_564.signal; 5203 5200 var _567=_564.listener; 5201 if(!_564.isDOM){ 5202 if(typeof (src.__disconnect__)=="function"){ 5203 src.__disconnect__(_564,sig,_564.objOrFunc,_564.funcOrStr); 5204 } 5205 return; 5206 } 5204 5207 if(src.removeEventListener){ 5205 5208 src.removeEventListener(sig.substr(2),_567,false); mochikit/trunk/tests/test_Signal.js
r1287 r1378 422 422 } 423 423 }; 424 425 connect(has__Connect, 'signalOne', aFunction); 424 connect(has__Connect, 'signalOne', function() { 425 t.fail("__connect__ should have disconnected signal"); 426 }); 426 427 t.is(has__Connect.count, 3, '__connect__ is called when it exists'); 427 428 signal(has__Connect, 'signalOne'); 428 t.is(has__Connect.count, 3, '__connect__ can disconnect the signal'); 429 430 has__Disconnect = { 431 count: 0, 432 __disconnect__: function (ident) { 433 this.count += arguments.length; 434 } 435 }; 436 connect(has__Disconnect, 'signalOne', aFunction); 437 connect(has__Disconnect, 'signalTwo', aFunction); 438 disconnectAll(has__Disconnect); 439 t.is(has__Disconnect.count, 8, '__disconnect__ is called when it exists'); 429 440 430 441 var events = {};
