当输入变得模糊时,我想获取输入的值,并用输入的值替换脚本中的“动作”一词。因此,例如,如果我在输入中键入“ 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/

10-11 22:04
查看更多