命名空间切换为CSS类

时间:2014-06-12 23:46:39

标签: javascript jquery

jquery有这个功能

但它不允许名称间距。使用名称间距,您可以在多个类之间切换,就好像它们是单选按钮一样。

例如

toggleClass(el, 'ns1', 'test')

将检查ns1并删除具有此命名空间的任何其他类,并将其替换为类test

我写了这个库函数来保存我的应用程序代码。

我犯的一个错误是我使用命名空间为类添加了前缀,而不是让它成为一个单独的参数。

以下是我正在使用名称间距的自定义toggleClass:

// apply event listeners to the input elements
applyEL: function (input_element, label_element) {
    var self = this;
    self.J.input = $(input_element);
    self.J.input.on("blur", function () {
        if (input_element.value === '') {
            $A.toggleClass(input_element, self.S.toggle_border_show);
            $A.toggleClass(label_element, self.S.toggle_label_show);
            $A.expandFont(label_element, 'up', self.S.speed);
        }
    }, false);
    self.J.input.on("focus", function () {
        if (input_element.value === '') {
            $A.toggleClass(input_element, self.S.toggle_border_obscure);
            $A.toggleClass(label_element, self.S.toggle_label_obscure);
        }
    }, false);
    self.J.input.on("paste keypress drop", function () {
        $A.setTimeout(function (label_element, input_element) {
            $A.toggleClass(label_element, this.S.toggle_label_hide);
            $A.toggleClass(input_element, this.S.toggle_border_hide);
        }, 0);
    }, false);
}

有没有更好的方法来做到这一点,另外还有我提到的。

1 个答案:

答案 0 :(得分:0)

更好的方法是,而是将一个类添加到html或body元素,它将充当名称空间,就像常见的主题切换器一样?

如果您需要特定元素的本地名称空间,您将引用父元素。

繁荣,你有名字空间!