`

Prototype中的Event.observe用法

阅读更多
使用Event.observe可以更好地让页面元素与js代码分离,如下面的代码.
<html>
<head>
	<title>测试</title>
	<script type="text/javascript" src="prototype-1.5.1.2.js"></script>
</head>
<body>
请输入:<input type="text" name="birth" id="birth"/><br/>
<input id="btn_test" type="button" value="测试" />
</body>
</html>
<script type="text/javascript" language="javascript">
		    	Event.observe('btn_test', 'click', test);
		    	function test(){
		    	    alert("弹出消息!!!");
		    	}
</script>


不过,我如果将function test(){}方法变成一个接受参数的方法,那么页面一载入就会执行test弹出消息的方法,而不是等着按钮被点击后执行test,不知道为什么会这样?
<html>
<head>
	<title>测试</title>
	<script type="text/javascript" src="prototype-1.5.1.2.js"></script>
</head>
<body>
请输入:<input type="text" name="birth" id="birth"/><br/>
<input id="btn_test" type="button" value="测试" />
</body>
</html>
<script type="text/javascript" language="javascript">
		    	Event.observe('btn_test', 'click', test("弹出消息!!!"));
		    	function test(msg){
		    	    alert(msg);
		    	}
</script>

注:我用firefox运行,在错误控制台,看到了有如下的异常信息.
引用

错误: uncaught exception: [Exception... "Could not convert JavaScript argument"  nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)"  location: "JS frame :: file:///C:/Documents%20and%20Settings/Administrator/%E3%83%87%E3%82%B9%E3%82%AF%E3%83%88%E3%83%83%E3%83%97/prototype-1.5.1.2.js :: anonymous :: line 3014"  data: no]


有哪位大虾能帮忙解答一下此问题?
分享到:
评论
2 楼 brown802 2013-04-03  
Event.observe('test', 'click',function test(msg){ 
                    alert("弹出消息!!!"); 
                }  ); 
我感觉应该是页面顺序加载,之后执行到test()函数就执行,但你写的监听中observe在执行时,这应该是一个函数名称!或是你自己写的函数体,不应该写一个携带参数的函数!
1 楼 LynsaHuang 2009-02-02  
问题知道原因了么?
贴出来吧

相关推荐

    prototype-1.6.0.3

    在本文中,我们将深入探讨 Prototype JavaScript 框架的1.6.0.3版本,通过其包含的文件来解析其核心概念和使用方法。 一、Prototype 的基本理念 Prototype 的核心理念是提供一套面向对象的编程工具,包括类、继承...

    prototype-1.6.0.2.js.rar

    Prototype的事件处理机制使得添加和移除事件监听器变得简单,如`element.observe(eventName, callback)`用于添加事件监听,`element.stopObserving(eventName, callback)`用于移除。同时,`Event.stop(event)`方法...

    prototype-1.4.0.rar

    - **事件处理**:它引入了事件委托的概念,`Event.observe`和`Event.stop`等方法提高了事件处理的效率和灵活性。 2. **文件详解**: - **CHANGELOG**:记录了版本间的更改和改进,是了解版本更新内容的重要文档。...

    Prototype-1.6.0.2

    4. **事件处理**:Prototype 提供了一个事件处理系统,允许使用 `Event.observe()` 和 `Event.stopObserving()` 注册和取消事件监听器。它还改进了事件冒泡和事件对象的行为,使得跨浏览器的事件处理更加一致。 5. ...

    prototype.js简介

    4. **事件处理** - 库中的`Event.observe()`和`Event.stop()`等方法,让添加和处理事件监听器变得更为方便,同时还能阻止事件的默认行为。 5. **动画效果** - prototype.js 包含`Effect`模块,可以轻松实现平滑的...

    prototype-1.4.0源码解读.js

    `Event.observe`用于添加事件监听器,`Event.stop`可以阻止事件的默认行为,`Event.stopObserving`则用于移除事件监听。这些方法使得处理用户交互更加灵活。 5. **Ajax交互** Prototype 提供了强大的Ajax功能,如`...

    prototype.js 1.6中文手册、prototype.js 1.6英文手册、

    `Event.observe()`和`Event.stopObserving()`用于添加和移除事件监听器,`Event.stop()`则用于阻止事件的默认行为。此外,还有`Element.simulate()`,它允许模拟触发指定的DOM事件。 ### 6. JSON支持 1.6版本增强...

    prototype.js 实例

    Prototype.js提供了事件处理功能,如`Event.observe`用于添加事件监听器。例如,我们可以在窗口上添加拖动功能: ```javascript myWindow.observe('mousedown', function(event) { var x = event.clientX - ...

    prototype-1.6.0.2Javascript以及英文说明文档

    4. **事件处理**:Prototype改进了事件处理机制,引入了`Event.observe`和`Event.stop`等方法,提供了跨浏览器的事件监听和处理。 5. **Class系统**:Prototype引入了类的概念,通过`Class.create`可以创建自定义类...

    prototype1.7.zip

    Prototype改进了事件处理机制,提供了`Event.observe()`和`Event.stop()`等方法,使得事件监听和阻止默认行为变得更加直观。它还支持事件委托,通过在父元素上设置监听器来处理子元素的事件。 5. **JSON支持** ...

    prototype.js 1.4-1.6[全]

    此外,`prototype`属性的使用也使得动态添加和修改对象方法成为可能,这是Prototype.js库的一大特色。 3. **元素选择与操作** Prototype.js 引入了 `$` 和 `$$` 函数,分别用于单个元素选择和多个元素选择,类似于...

    prototype 1.6.0.2.js+使用DEMO例子

    6. **事件处理**:Prototype改进了事件处理,提供了`observe()`和`stopObserving()`来绑定和解绑事件,还有`Event.Methods`来处理事件。 其次,`prototype-160-api.pdf`是Prototype 1.6.0.2的API文档,详细阐述了...

    prototype1.6.0.3.rar

    Event.observe()方法用于添加事件监听器,而Event.stop()和Event.preventDefault()则可以阻止事件的默认行为。 5. **其他实用工具** 除了上述功能,Prototype还包含了一些实用工具,如Enumerable模块中的各种集合...

    prototype.js jquery.js 打包下载(包含各自的API)

    4. **事件处理**:Prototype简化了事件处理,通过`Event.observe`和`Event.stop`等方法可以轻松地绑定和处理事件。 5. **特效**:Prototype还提供了一些基本的动画效果,如`Effect`模块,可以实现淡入淡出、滑动等...

    prototype.js

    1. **入门指南**:介绍如何引入Prototype.js到项目中,以及基本的使用方法。 2. **核心概念**:阐述Prototype.js的核心思想,如DOM操作、Ajax和事件处理。 3. **API参考**:详尽列举了所有提供的函数和方法,以及...

    prototype1.7.2

    `Event.observe()` 和 `Event.stopObserving()` 方法用于绑定和解绑事件,而 `Event.stop()` 可以阻止事件的默认行为。 6. **函数工具** Prototype 还提供了一些实用的函数工具,如 `Function.prototype.bind()` ...

    prototype.js 1.6

    - **事件处理**:使用 `Event.observe()` 和 `Event.stopObserving()` 注册和移除事件监听器,简化事件处理逻辑。 - **Ajax 请求**:`Ajax.Request` 和 `Ajax.Updater` 可以创建 AJAX 请求,处理响应并更新页面内容...

    类之Prototype.js学习

    - 使用`Event.observe`方法观察事件。 ```javascript Event.observe(student, 'study', watchStudy, false); ``` 但是,在当前上下文中,`Event.observe`方法可能不起作用,因为`study`并不是DOM事件,而是...

    Prototype 中文chm教程 Prototype 中文电子图书 Prototype中文帮助文档下载

    2. **事件处理**:Prototype.js 改进了原生的事件处理机制,提供了一个更一致的跨浏览器的事件处理接口,如Event.observe()和Event.stop()。 3. **Ajax**:Ajax.Request和Ajax.Updater是Prototype.js中的核心Ajax类...

Global site tag (gtag.js) - Google Analytics