模块化JS:如何传递变量和事件

时间:2018-05-01 09:08:28

标签: javascript ecmascript-5 es5-shim

我有这个JS代码:

        const getData = {

            // set vars
            start_date: <?php echo $start_ts; ?>,
            end_date:   <?php echo $stop_ts; ?>,

            init: function() {
                this.cacheDom();
                this.bindEvents();
            }, 
            cacheDom: function() {
                this.form = form;
                this.show = show;               
            }, 
            bindEvents: function() {
                this.show.click(this.sendData(this.start_date, this.end_date));
            },
            sendData: function(sdate, edate, e){
                e.preventDefault();
                // this.form.submit();
                console.log(sdate);
                console.log(edate);
            },
            render: function() {}


        }
        // run object
        getData.init();

我正在尝试使用click事件传递this.start_datethis.end_date。尝试用几种不同的方式(你看到的是其中之一)

请帮我传递包含变量的点击事件。

1 个答案:

答案 0 :(得分:1)

        bindEvents: function() {
            this.show.onclick = this.sendData.bind(this, this.start_date, this.end_date);
        },
  1. 通过调用click,您可以模拟单击按钮,而不是附加事件处理程序(这适用于jquery对象,但不适用于dom元素)
  2. To&#34; prepend&#34;除了事件本身之外,处理程序的一些参数还使用bind