在表格中我有一个隐藏字段:
<input type="hidden" id="callback_function" value="myFunction" />
现在有些JavaScript:
<script>
$('.dataRow').click(function(){
if($('#callback_function').val()){
//same as executing myFunction();
eval($('#callback_function').val()+'();');
}
});
</script>
这有效,但看起来非常不优雅。有没有办法在不使用eval
的情况下执行此操作?
答案 0 :(得分:3)
似乎该函数是全局的(属性为window
),因此我们根本不需要eval
:
<script>
$('.dataRow').click(function(){
var fnName = $('#callback_function').val();
if(fnName && window[fnName]) {
window[fnName]();
}
});
</script>