当输入变得模糊时,我想获取输入的值,并用输入的值替换脚本中的“动作”一词。因此,例如,如果我在输入中键入“ hide”,则将“ action”一词替换为“ hide”。或类似的东西。
然后,我将使用此逻辑来定义触发器(#elementA)和目标(#elementB)。
的HTML
<input type="text" id="define-action">
<script id="interactions">
$('#elementA').click(function() {
$('#elementB').action();
)};
</script>
JS
$('#define-action').blur(function() {
var action = $(this).val();
// Replace "action" with action
)};
最佳答案
使用对象[]
表示法$(selector).hide();
可以写为$(selector)['hide']()
因此,您可以传递变量而不是硬代码字符串
$(selector)[action]()
当心,如果变量表示的方法不存在,则会引发错误,因此您可能应该创建一个将接受的有效方法数组,并在调用该方法之前确保值在该数组中
数组中测试值的示例:
var allowedMethods=['hide','show','slideUp'];
if( $.inArray( action, allowedMethods) >-1){
$(selector)[action]()
}else{
alert( action +' is not a valid method')
}
关于javascript - 动态编写javascript部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20308874/