Changeset 570
- Timestamp:
- 01/25/06 02:57:43 (3 years ago)
- Files:
-
- mochikit/branches/scriptaculous/MochiKit/Controls.js (modified) (8 diffs)
- mochikit/branches/scriptaculous/MochiKit/New.js (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
mochikit/branches/scriptaculous/MochiKit/Controls.js
r533 r570 488 488 MochiKit.DOM.hideElement(this.update); 489 489 490 MochiKit. Event.observe(this.element, 'blur',491 MochiKit.DOM.bindAsEventListener(this.onBlur, this));492 MochiKit. Event.observe(this.element, 'keypress',493 MochiKit.DOM.bindAsEventListener(this.onKeyPress, this));490 MochiKit.Signal.connect(this.element, 'onblur', 491 MochiKit.Base.bind(this.onBlur, this)); 492 MochiKit.Signal.connect(this.element, 'onkeypress', 493 MochiKit.Base.bind(this.onKeyPress, this)); 494 494 }, 495 495 … … 542 542 onKeyPress: function (event) { 543 543 if (this.active) { 544 switch(event.keyCode) { 545 case MochiKit.Event.KEY_TAB: 546 case MochiKit.Event.KEY_RETURN: 544 if (event.keyString == "KEY_TAB" || event.keyString == "KEY_RETURN") { 547 545 this.selectEntry(); 548 546 MochiKit.Event.stop(event); 549 case MochiKit.Event.KEY_ESC:547 } else if (event.keyString == "KEY_ESCAPE") { 550 548 this.hide(); 551 549 this.active = false; 552 550 MochiKit.Event.stop(event); 553 551 return; 554 case MochiKit.Event.KEY_LEFT: 555 case MochiKit.Event.KEY_RIGHT: 552 } else if (event.keyString == "KEY_LEFT" || event.keyString == "KEY_RIGHT") { 556 553 return; 557 case MochiKit.Event.KEY_UP: 554 } 555 } else if (event.keyString == "KEY_UP") { 558 556 this.markPrevious(); 559 557 this.render(); 560 558 if (MochiKit.Base.isSafari()) { 561 MochiKit.Event.stop(event);559 event.stop(); 562 560 } 563 561 return; 564 case MochiKit.Event.KEY_DOWN: 562 } 563 } else if (event.keyString == "KEY_DOWN") { 565 564 this.markNext(); 566 565 this.render(); 567 566 if (MochiKit.Base.isSafari()) { 568 MochiKit.Event.stop(event);567 event.stop(); 569 568 } 570 569 return; 571 570 } 572 571 } else { 573 if (event.key Code == MochiKit.Event.KEY_TAB || event.keyCode == MochiKit.Event.KEY_RETURN) {572 if (event.keyString == "KEY_TAB" || event.keyString == "KEY_RETURN") { 574 573 return; 575 574 } … … 592 591 this.render(); 593 592 } 594 MochiKit.Event.stop(event);593 event.stop(); 595 594 }, 596 595 … … 712 711 713 712 addObservers: function (element) { 714 MochiKit. Event.observe(element, 'mouseover',715 MochiKit.DOM.bindAsEventListener(this.onHover, this));716 MochiKit. Event.observe(element, 'click',717 MochiKit.DOM.bindAsEventListener(this.onClick, this));713 MochiKit.Signal.connect(element, 'onmouseover', 714 MochiKit.Base.bind(this.onHover, this)); 715 MochiKit.Signal.connect(element, 'onclick', 716 MochiKit.Base.bind(this.onClick, this)); 718 717 }, 719 718 … … 964 963 this.element.title = this.options.clickToEditText; 965 964 966 this.onclickListener = MochiKit. DOM.bindAsEventListener(this.enterEditMode, this);967 this.mouseoverListener = MochiKit. DOM.bindAsEventListener(this.enterHover, this);968 this.mouseoutListener = MochiKit. DOM.bindAsEventListener(this.leaveHover, this);969 MochiKit. Event.observe(this.element, 'click', this.onclickListener);970 MochiKit. Event.observe(this.element, 'mouseover', this.mouseoverListener);971 MochiKit. Event.observe(this.element, 'mouseout', this.mouseoutListener);965 this.onclickListener = MochiKit.Base.bind(this.enterEditMode, this); 966 this.mouseoverListener = MochiKit.Base.bind(this.enterHover, this); 967 this.mouseoutListener = MochiKit.Base.bind(this.leaveHover, this); 968 MochiKit.Signal.connect(this.element, 'click', this.onclickListener); 969 MochiKit.Signal.connect(this.element, 'mouseover', this.mouseoverListener); 970 MochiKit.Signal.connect(this.element, 'mouseout', this.mouseoutListener); 972 971 if (this.options.externalControl) { 973 MochiKit. Event.observe(this.options.externalControl, 'click', this.onclickListener);974 MochiKit. Event.observe(this.options.externalControl, 'mouseover', this.mouseoverListener);975 MochiKit. Event.observe(this.options.externalControl, 'mouseout', this.mouseoutListener);972 MochiKit.Signal.connect(this.options.externalControl, 'click', this.onclickListener); 973 MochiKit.Signal.connect(this.options.externalControl, 'mouseover', this.mouseoverListener); 974 MochiKit.Signal.connect(this.options.externalControl, 'mouseout', this.mouseoutListener); 976 975 } 977 976 }, … … 995 994 // stop the event to avoid a page refresh in Safari 996 995 if (evt) { 997 MochiKit.Event.stop(evt);996 evt.stop(); 998 997 } 999 998 return false; … … 1149 1148 // stop the event to avoid a page refresh in Safari 1150 1149 if (arguments.length > 1) { 1151 MochiKit.Event.stop(arguments[0]);1150 arguments[0].stop(); 1152 1151 } 1153 1152 return false; … … 1233 1232 } 1234 1233 this.leaveEditMode(); 1235 MochiKit. Event.stopObserving(this.element, 'click', this.onclickListener);1236 MochiKit. Event.stopObserving(this.element, 'mouseover', this.mouseoverListener);1237 MochiKit. Event.stopObserving(this.element, 'mouseout', this.mouseoutListener);1234 MochiKit.Signal.disconnect(this.element, 'click', this.onclickListener); 1235 MochiKit.Signal.disconnect(this.element, 'mouseover', this.mouseoverListener); 1236 MochiKit.Signal.disconnect(this.element, 'mouseout', this.mouseoutListener); 1238 1237 if (this.options.externalControl) { 1239 MochiKit. Event.stopObserving(this.options.externalControl, 'click', this.onclickListener);1240 MochiKit. Event.stopObserving(this.options.externalControl, 'mouseover', this.mouseoverListener);1241 MochiKit. Event.stopObserving(this.options.externalControl, 'mouseout', this.mouseoutListener);1238 MochiKit.Signal.disconnect(this.options.externalControl, 'click', this.onclickListener); 1239 MochiKit.Signal.disconnect(this.options.externalControl, 'mouseover', this.mouseoverListener); 1240 MochiKit.Signal.disconnect(this.options.externalControl, 'mouseout', this.mouseoutListener); 1242 1241 } 1243 1242 } mochikit/branches/scriptaculous/MochiKit/New.js
r533 r570 400 400 401 401 MochiKit.Event = { 402 KEY_BACKSPACE: 8,403 KEY_TAB: 9,404 KEY_RETURN: 13,405 KEY_ESC: 27,406 KEY_LEFT: 37,407 KEY_UP: 38,408 KEY_RIGHT: 39,409 KEY_DOWN: 40,410 KEY_DELETE: 46,411 412 element: function (event) {413 return event.target || event.srcElement;414 },415 416 isLeftClick: function (event) {417 return (((event.which) && (event.which == 1)) ||418 ((event.button) && (event.button == 1)));419 },420 421 pointerX: function (event) {422 return event.pageX || (event.clientX +423 (document.documentElement.scrollLeft || document.body.scrollLeft));424 },425 426 pointerY: function (event) {427 return event.pageY || (event.clientY +428 (document.documentElement.scrollTop || document.body.scrollTop));429 },430 431 stop: function (event) {432 if (event.preventDefault) {433 event.preventDefault();434 event.stopPropagation();435 } else {436 event.returnValue = false;437 event.cancelBubble = true;438 }439 },440 441 402 // find the first node with the given tagName, starting from the 442 403 // node the event was triggered on; traverses the DOM upwards 443 404 findElement: function (event, tagName) { 444 var element = MochiKit.Event.element(event);405 var element = event.target; 445 406 while (element.parentNode && (!element.tagName || 446 407 (element.tagName.toUpperCase() != tagName.toUpperCase()))) { … … 448 409 } 449 410 return element; 450 },451 452 observers: false,453 454 _observeAndCache: function (element, name, observer, useCapture) {455 if (!this.observers) {456 this.observers = [];457 }458 if (element.addEventListener) {459 this.observers.push([element, name, observer, useCapture]);460 element.addEventListener(name, observer, useCapture);461 } else if (element.attachEvent) {462 this.observers.push([element, name, observer, useCapture]);463 element.attachEvent('on' + name, observer);464 }465 },466 467 unloadCache: function () {468 if (!MochiKit.Event.observers) {469 return;470 }471 for (var i = 0; i < MochiKit.Event.observers.length; i++) {472 MochiKit.Event.stopObserving.apply(this, MochiKit.Event.observers[i]);473 MochiKit.Event.observers[i][0] = null;474 }475 MochiKit.Event.observers = false;476 },477 478 observe: function (element, name, observer, useCapture) {479 var element = MochiKit.DOM.getElement(element);480 useCapture = useCapture || false;481 482 if (name == 'keypress' && (MochiKit.Base.isKHTML() || element.attachEvent)) {483 name = 'keydown';484 }485 486 this._observeAndCache(element, name, observer, useCapture);487 },488 489 stopObserving: function (element, name, observer, useCapture) {490 var element = MochiKit.DOM.getElement(element);491 useCapture = useCapture || false;492 493 if (name == 'keypress' && (MochiKit.Base.isKHTML() || element.detachEvent)) {494 name = 'keydown';495 }496 497 if (element.removeEventListener) {498 element.removeEventListener(name, observer, useCapture);499 } else if (element.detachEvent) {500 element.detachEvent('on' + name, observer);501 }502 411 } 503 412 }; 504 413 505 /* prevent memory leaks in IE */506 MochiKit.Event.observe(window, 'unload', MochiKit.Event.unloadCache, false);507
