【发布时间】:2014-06-19 07:16:39
【问题描述】:
首先我有一个关于耦合两个输入元素的非常基本的问题。在我的例子中,它是一个 Slider 和一个输入元素:
<div class="userInput">
<input id="slider" type="range" min="0" max="100"/>
<input id="number" type="number" max="100"/>
</div>
js:
$('#slider').corresponding = $('#number');
$('#number').corresponding = $('#slider');
$('#slider').onchange(function(){this.corresponding.value = this.value;});
$('#number').onchange(function(){this.corresponding.value = this.value;});
所以这对我有用,但在我看来也像是一个肮脏的黑客,扩展了 jQuery 对象。将控制器附加到 jQuery 对象时,这种不好的感觉甚至会增加:
var MYController = new Controller();
$('#slider').controller = MYController;
$('#slider').onchange(function(){
this.corresponding.value = this.value;
this.controller.sliderChange(this.value);
});
如果有任何建议如何“正确”完成,我将不胜感激。我还没有找到更好的方法,因为我有大量且不断变化的用户输入,每个都需要自己的控制器对象,保存在我的 Mastercontroller 类的数组中。
【问题讨论】:
-
好吧,我得出的结论是——基本上——我必须这样做。查看 Backbonejs,我得出的结论是,他们的做法是一样的。
标签: javascript jquery view controller