Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何为DOM元素注册事件处理程序_Javascript_Backbone.js - Fatal编程技术网

Javascript 如何为DOM元素注册事件处理程序

Javascript 如何为DOM元素注册事件处理程序,javascript,backbone.js,Javascript,Backbone.js,请帮帮我。 如何为主干中的DOM元素注册事件处理程序 <p id="init">init</p> <script> $(function () { function Config(){ this.el=document.getElementById('init'); } var config=new Config; _.extend(config, Backbone.Events);

请帮帮我。 如何为主干中的DOM元素注册事件处理程序

        <p id="init">init</p>
        <script>

$(function () {
   function Config(){
       this.el=document.getElementById('init');

   }
   var config=new Config;


_.extend(config, Backbone.Events);


function fn(){
    console.log('hello');
}
config.el.on('click',fn);

});

init

$(函数(){ 函数配置(){ this.el=document.getElementById('init'); } var config=新配置; _.extend(配置,主干.Events); 函数fn(){ log('hello'); } config.el.on('click',fn); });
我在代码中遇到一个错误:

TypeError:config.el.on不是函数


主干网也有类似jquery的方法,比如jquery

config.el
正在引用DOM元素。如果您试图调用jQuery方法(
on()
),则需要将该DOM引用转换为jQuery对象:

$(config.el).on('click',fn);
检查这个

或者不使用jQuery

config.el.onclick = fn;

另一个

Backbone.Events是一个模块,它使对象能够绑定和触发自定义命名事件

e、 g

所以,如果您想注册DOM click事件,可能应该在对象构造函数中以JS或jQuery方式注册事件处理程序

$(function(){
    function Config(){
        this.el = document.getElementById("test");
        $(this.el).on("click",fn);   //jQuery way
        this.el.addEventListener("click", fn, false);  //js way
    }

    var config = new Config;

    _.extend(config,Backbone.Events);

    function fn(){
        alert("hello");
    }

});

我不认为这是真正正统的做法,但您应该扩展
config.el
,而不是
config
,否则
config.el
将引用普通DOM元素,而不是扩展的DOM元素。如何在没有jquery事件的情况下进行扩展?
$(function(){
    function Config(){
        this.el = document.getElementById("test");
        $(this.el).on("click",fn);   //jQuery way
        this.el.addEventListener("click", fn, false);  //js way
    }

    var config = new Config;

    _.extend(config,Backbone.Events);

    function fn(){
        alert("hello");
    }

});