如何在HTML元素上创建函数,而不是将元素作为参数传递
How to create a function on HTML element instead passing element as parameter
我有一个函数,它接受元素作为参数,这个元素将用于执行函数内部的操作。
function center(element) {
// code to align this given element to center position
element.css("position","fixed");
element.css("top", Math.max(0, ((window.innerHeight - element[0].offsetHeight) / 2))+ "px");
element.css("left", Math.max(0, ((window.innerWidth - element[0].offsetWidth) / 2))+ "px");
return element;
}
// calling above function
center(element);
此处元素作为参数传递。但我不想那样做。是否可以创建一个将在元素上调用的函数?示例
element.center();
您还可以考虑jQuery函数,如:$(element).next();
等
注意,我不想使用jQuery。我需要纯javascript编码。
通过使用jQuery,可以创建以下
中心功能
jQuery.fn.center = function () {
this.css("position","absolute");
this.css("top", Math.max(0, (($(window).height() - this.height()) / 2) + $(window).scrollTop())+ "px");
this.css("left", Math.max(0, (($(window).width() - this.width()) / 2) + $(window).scrollLeft())+ "px");
return this;
};
您可以向Node
对象的原型添加一个函数:
Node.prototype.center = function() {
// code to align this given element to center position
this.css("position","fixed");
this.css("top", Math.max(0, ((window.innerHeight - element[0].offsetHeight) / 2))+ "px");
this.css("left", Math.max(0, ((window.innerWidth - element[0].offsetWidth) / 2))+ "px");
return this;
}
这将允许您在任何节点上调用.center()
。
注意:定义原型函数时,this
是调用函数的对象(在本例中为Node)。
通过向element
对象添加名为center
的原型,您将能够在element
上调用center
方法。
参考文献
Javascript中的原型:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype
相关文章:
- 函数未将值作为参数传递
- 如何在HTML元素上创建函数,而不是将元素作为参数传递
- 是否可以将一个元素还原为它's上一个位置,而不将该位置作为参数传递
- 隐藏JavaScript函数中作为参数传递的元素的父元素
- 动态添加onclick到元素,传递函数参数
- 调用所有数组元素的函数,而不将项目作为参数传递
- 将当前元素作为参数传递给循环中的回调函数
- 原型:观察2个元素并传递不同的参数
- 我们如何将html元素作为参数传递到handlebaelper中,以实现显示更多/更少的功能
- 动态创建的元素和传递参数上的事件绑定
- 获取被点击元素的ID并作为参数传递
- 有没有一种方法可以调用作为参数传递的元素的函数?
- 将javascript onclick参数传递给另一个页面上的元素
- 将循环变量作为元素函数中的参数传递
- 如何将目标元素作为参数传递给内联事件处理程序
- 什么'这是在JavaScript中将元素作为第一个参数传递给事件处理程序的最简单方法
- 如何传递元素参数给require.js定义调用
- Javascript将元素ID属性作为参数传递
- 如何从HTML元素动态传递参数给JQuery点击事件
- 在JavaScript中将元素作为第一个参数传递给事件处理程序的最简单方法是什么?