observe [1.6.0]
observe(eventName, handler) -> document
侦听整个文档范围内的给定事件。也可以用于侦听 "dom:loaded" 事件。
document.observe 是 Element#observe 基于整个文档范围的版本。它与 Event.observe(document, eventName, handler) 是等价的。
"dom:loaded" 事件
Prototype 创建了一个确实非常有用的事件:你可能希望在文档的 DOM 树载入完成后,能够获取一个通知, 这就是所谓的 "dom:loaded" 事件。在支持 DOMContentLoaded 事件的浏览器上, Prototype 会在 DOMContentLoaded 事件上触发 "dom.loaded" 事件。对于不支...
Form.Observer
new Form.Observer(element, frequency, callback)
一个定时观察器,当表单中任意一个控件的值发生变化时,将触发回调。
译注:注意,若要使用表单观察器,则表单中需要检测的控件必须添加
name 属性。
Form.Observer 使用 Form.serialize() 实现
getValue 方法。关于定时观察器的描述见
Abstract.TimedObserver。
样例
在下面的样例中,如果表单中任意控件的值发生变化,则改变表单的外观显示。当数据提交后(储存),
表单重置为初始时的外观。
Login Preferences
Current settings:
...
Form.Element.Observer
new Form.Element.Observer(element, frequency, callback)
一个针对指定表单控件的定时观察器。
Form.Element.Observer 使用 Form.Element.getValue() 实现 getValue() 方法。关于定时观察器的描述见 Abstract.TimedObserver。
TimedObserver 是一个抽象的观察器类,其具体类的实例用于对一些值进行定期检测, 若值发生变化,则触发一个回调。检测频率以秒为单位。
TimedObserver 对象使用 getValue() 实例方法对值进行检测。 在抽象类中并没有实现这个方法,你必须使用具体类如 Form.Observer 或 Form.Element.Observer 才能进行相应的检测。前者序列化一个表单,当结果发生变化时, 触发回调。而后者则是检测到指定的表单控件的值发生变化,就触发回调。
TimedObserver 的使用非常简单:实例化具体类并传递相应的参数,例如:
new Form.Element.Observer( 'myelement', 0.2, // 200 毫秒
function(el, value){
alert('The form control has c...
observe
Event.observe(element, eventName, handler[, useCapture = false])
在 DOM 元素上注册事件处理程序。
重要提示
首先,如果你曾经使用过 HTML 事件属性(如 <body onload="return myFunction()">)或 DOM Level-0 的事件属性(如 window.onload = myFunction;),你一定要忘记那些糟糕的做法,然后了解 observe 是怎么做的。
对于那些相同的元素事件(element+event)组合,它并不会替换已经存在的事件处理程序,而是将新的处理程序增加到元素事件组合的 处理程序列表 中。使用 observe 再也不会影响到先前已有的事件处理程序调用了。
参数说明
对于希望增加事件处理的 DOM 元素...
observe
observe(element, eventName, handler[, useCapture = false]) -> HTMLElement
为 element 注册一个事件处理程序,返回元素本身。
这是对 Event.observe 的简单代理,更深入的信息请参考 Event.observe。
样例
$(element).observe('click', function(event){
alert(Event.element(event).innerHTML);
});
// -> HTMLElement(当元素被点击时,将弹出一个提示框,显示元素内的 HTML 文本)。
...
observe(element, eventName, handler[, useCapture = false]) -> HTMLElement
为 element 注册一个事件处理程序,返回元素本身。
这是对 Event.observe 的简单代理,更深入的信息请参考 Event.observe。
样例
$(element).observe('click', function(event){
alert(Event.element(event).innerHTML);
});
// -> HTMLElement(当元素被点击时,将弹出一个提示框,显示元素内的 HTML 文本)。
...
<script src="prototype.js"></script>
<form id="frm">
<div id="div1">
<input type="text" id="txt" name="txt" onchange="return alert('Now')"/>
<input type="text" id="txt2" name="txt2" />
<input type="button" id="btn" name="btn"
value="click" onclick="test(event)" />
<input type="submit" />
<a href="http://www.google.com" onclick="test2(event)">Google</a...
<script src="prototype.js"></script>
<input type="button" id="btn" value="click" />
<input type="button" id="reg" value="register" />
<input type="button" id="unreg" value="unregister" />
<div id="status"></div>
<script>
function test() {
alert("clicked");
}
Event.observe("reg", "click", function () {
Event.observe("btn", "click", test, false);
$("status").innerHT...