如何重用jQuery DOM变量的方法?

时间:2016-10-12 13:25:42

标签: javascript jquery oop prototype

我正在使用jQuery访问DOM元素,我想向变量添加方法,如下所示:

var nav = $("nav"),
    footer = $("footer");

nav.visibility = function() {
    return nav.css("display") !== "none";
}

但是,对于这两个变量,我会检查if (nav.visibility() == true) {...}if (footer.visibility() == true) {...}之类的内容。我怎样才能有navfooter使用的方法?

目前我在思考,是否有某种方法可以使用visibility方法制作原型实例?

或者我应该满足于此:

function visibility(element) {
    return element.css("display") !== "none";
}

2 个答案:

答案 0 :(得分:2)

如果您想查看类似

的内容
var nav = $("nav");

if ( nav.visibility() == true ) {...

您需要将其作为插件编写

$.fn.visibility = function() {
    return this.css("display") !== "none";
}

答案 1 :(得分:0)

可能,你想要

nav.add(footer).visibility()
// if you have own "jQuery.fn.visible" function

扩展版(应该可能更好)

!nav.add(footer).is(':not(:visible)')
// tests, is there an invisible element