javascript - 如何发送一条语句以用作代码中的命令?

标签 javascript

我一直在尝试做的是传递像 oninputonmouseover 这样的语句,然后将它们用作方法中的实际语句。

function Controller() {
  this.listen = function(elem, func, statement) {
    elem.statement = function() {//and then use it here
      func(elem);
    };
    return true;
  };
}

var age = document.getElementById('age');
var controller = new Controller();

controller.listen(age, callMe, oninput);//set the statement here

function callMe(elem) {
  console.log('hey');
}
<!DOCTYPE html>
<html>

<head>
  <title>HTML5, CSS3 and JavaScript demo</title>
</head>

<body>
  <input type="number" id="age" />
</body>

</html>

有办法做到这一点吗?

最佳答案

oninput 作为字符串传递 ("oninput"),然后使用方括号访问 elem 的属性:

function Controller() {
  this.listen = function(elem, func, statement) {
    elem[statement] = function() {//and then use it here
      func(elem);
    };
    return true;
  };
}

var age = document.getElementById('age');
var controller = new Controller();

controller.listen(age, callMe, "oninput");//set the statement here

function callMe(elem) {
  console.log('hey');
}

但是,我建议您使用 element.addEventListener() 而不是 .onevent,请参阅 addEventListener vs onclick .

关于javascript - 如何发送一条语句以用作代码中的命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36294508/

相关文章:

javascript - Ionic 3 和 Angular 4 - 未捕获( promise 中): TypeError: Cannot read property 'title' of undefined

javascript - 有什么方法可以识别 mongoose/mongoDB 中的更新/更新?

javascript - Angularjs ng-click 在动态生成的列表标签中不起作用

javascript - 如何将网络音频振荡器从 (-1,1) 缩放到 (x,y)

javascript - 如何触发 "iron-localstorage-load"事件?

php - 使用 Zend Framework 或 Javascript 进行浏览器检测

javascript - jQuery 选择器在 .load() 完整回调中不起作用

javascript - 我如何接受不同数量的论点?

javascript - 使用 Object.values() 方法分配常量数组?

javascript - Codeigniter 笑脸未出现在预览区域中