这个问题是由佩德罗蒙泰罗张贴我的要求,所以,也许我可以更好地解释它自己。
这个问题是一个例子,我会尽量总结真正的问题。
最初我们有一个超过40K条目的选择框,这使得网站变得非常缓慢。由于我们已经开始使用名为Selectize的外部模块。
选择什么是隐藏最初的选择框并删除其中的所有条目,然后创建他自己的div,并且应该在最初的选择框中输入所有条目。
在实际应用中会发生什么情况是这样的: BEFORE:
<select id='test'>
<option value=1>test1</option>
<option value=2 selected>test2</option>
<option value=3>test3</option>
</select>
以后打电话SELECTIZE:
<select id='test>
<option value='2' selected>test2</option>
</select>
<div id='test-selectize'>
<div data-value=1>test1</div>
<div data-value=2>test2</div>
<div data-value=3>test3</div>
</div>
什么情况是,每一个我选择在selectize生成组合框的选项里,他创建在初始选择框中选定的项目并将其选中。
所以在最初的选择框中,我只会有'真实的,选定的价值'。
直到这里一切都完美。我们现在面临的问题是,这是一个拥有数千条代码行4年多的开发项目。
而且有很多代码行会强制通过jquery选择值到选择框。像这样$('#test')。val(3);
但是现在因为我们使用了Selectize模块,所以最初的选择框没有这个选项。
所以我们想要做的几乎是一个try/catch,所以当我尝试通过代码来改变我的初始选择框的值时,我抓住该事件而不是'改变'选择框的值,我会调用我自己的函数,它将选择Selectize模块上的值。
简单的解决方案是抓取过去4年中完成的所有代码,并在每个地方强制选择框中的.val我将重新编写它以使用新模块,但是,这非常耗时,当然错误会出现。
希望这解释了这个问题更好。
可能重复的[获取选择(下拉)的价值改变前](http://stackoverflow.com/questions/4076770/getting-value-of-select-dropdown-before-change) – guradio
这不是什么我需要......但谢谢你!我的问题有点不同。 –