你如何处理jquery中的控件绑定

时间:2013-05-08 06:54:43

标签: javascript jquery

我有一个关于jquery和DOM操作的问题。你如何处理DOM控件,例如

我必须从文本输入中获取价值,所以我可以这样做:

var SomeClass = function() {
    var control;

    this.setControl = function(c) {
        control = c;
    }

    this.getValue = function() {
        return control.val();
    }
}

$(document).ready(function() {
    var sc = new SomeClass(); // of course control could be passed in contructor as well
    sc.setControl($('#CONTROL'));
    console.log(sc.getValue());
});

var SomeClass = function() {
    var control = $('#CONTROL');

    this.getValue = function() {
        return control.val();
    }
}

$(document).ready(function() {
    var sc = new SomeClass();
    console.log(sc.getValue());
});
你有什么看法?什么是更好的,也许这是一堆垃圾,因此什么是最好的解决方案。 Plz不要把我送到骨干,脊椎等等。我只是在jquery中进行了互动。

最好!

编辑:

你是将逻辑与UI分开还是混合它? 更复杂的例子

在js文件中你有一个使用文本控件的类,在secound js文件中你也需要来自这个输入的值。你在做什么?你只需每次调用​​$('#control')或创建第三个js文件,在那里将是一个独立的“类”来操纵这个输入?

1 个答案:

答案 0 :(得分:1)

在构造函数中移动setValue()会更有意义:

SomeClass = function(c) {
    var control = c;

    return {
        getValue: function() {
            return control.val();
        }
    }
}

var x = new SomeClass($('input'));

alert(x.getValue());

但是,我不确定这种信息隐藏的价值有多大。也许作为某种视图包装。

在许多情况下,你不需要这个包装器,所以只需:

var $x = $('input'); // keep reference to a bunch of <input> elements.