从 HTML 调用 JavaScript 函数
Calling JavaScript functions from HTML
如何从HTML链接执行JS对象的函数属性?我有以下JS:
function Tester(elem) {
this.elem = document.getElementById(elem);
}
Tester.prototype.show = function() {
this.elem.innerHTML = '<a href="javascript: this.test();">test</a>';
};
Tester.prototype.test = function() {
alert("a");
};
这是 HTML:
<script type="text/javascript">
var test = new Tester("test");
test.show();
</script>
当我单击呈现的链接时,它无法识别test()
函数。当用户单击链接时,我将如何获得它,执行test()
函数?
正确的方法是创建一个 DOM 元素并使用 JavaScript 附加事件处理程序:
Tester.prototype.show = function() {
var a = document.createElement('a'),
self = this; // assign this to a variable we can access in the
// event handler
a.href = '#';
a.innerHTML = 'test';
a.onclick = function() {
self.test();
return false; // to prevent the browser following the link
};
this.elem.appendChild(a);
};
由于事件处理程序形成闭包,因此它可以访问外部函数(Tester.prototype.show
(中定义的变量。请注意,在事件处理程序中,this
不引用您的实例,而是引用处理程序绑定到的元素(在本例中为 a
(。MDN对this
有很好的描述。
quirksmode.org 有一些关于事件处理、绑定事件处理程序的各种方法、它们的优缺点、浏览器的差异以及this
在事件处理程序中的行为方式的精彩文章。
让自己熟悉 DOM 接口当然也很有帮助。
相关文章:
- 从函数JavaScript返回不可变数组/对象
- 将对象传递给函数.JavaScript
- 如何定义const函数javascript(语法糖)
- 新的日期函数javascript
- TypeError:this.getAttribute不是一个函数-javascript
- 从函数javascript发送变量
- 扩展自容器函数Javascript
- 从内部函数javascript内部分配外部函数的对象
- 使用函数JavaScript中的函数
- 在这里使用回调函数(JavaScript)有什么好处吗
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 将“e”传递给一个新函数 - javascript
- 调用函数中的一个函数——Javascript
- 传递的变量不适用于我的函数-Javascript
- 如何将类方法设置为等于多个函数?-Javascript
- 显示php中的函数javascript
- 如何使用php代码创建函数Javascript弹出框
- 未调用的外部函数-javascript
- 如何在类中运行函数.Javascript
- 关闭mouseover上的一个函数——Javascript,jQuery