我有一个非常基本的jQuery问题。我正在尝试触发现有功能,具体取决于从选择列表中选择的选项。
示例HTML:
<select name="selectAction" id="selectAction">
<option>Choose an action</option>
<option value="firstFunction">First Function</option>
<option value="secondFunction">Second Function</option>
<option value="thirdFunction">Third Function</option>
</select>
目标是在选择了该选项时运行firstFunction(),如果选择了那个则运行secondFunction()等。
我可以获取选择列表的值,但不知道如何使用它来执行特定的功能。
到目前为止,我有这个:
$(document).ready(function() {
$('body').on('change', '#selectAction', function(e) {
var theValue = $(this).find(":selected").val();
});
});
我知道我可以使用eval()来处理这个问题 - eval(theValue + '()');
- 但我正试图避免这种做法。我也意识到我可以使用一系列if / else或switch / case语句,但这似乎有点不优雅。有没有办法根据值名称本身触发函数?
TIA - Joe
答案 0 :(得分:1)
创建一个充当函数名称空间的对象。并选择更改绑定。
$(function() {
var API = {
firstFunction: function(){},
secondFunction: ...
};
$('#selectAction').change(function() {
var method = API[$(this).val()];
return method && method();
});
});