两个单独的点击事件对同一个按钮有不同的功能?

时间:2016-10-06 11:02:16

标签: javascript jquery html5 requirejs

我使用requireJS动态生成代码,并在需要时加载元素, 我有两个使用相同UI(html)元素的javascript类, 现在我想在同一个按钮的两个类中绑定click事件。 两个在按钮触发器中具有完全不同功能的类

HTML代码

<div class='command-processor'>
    <div class='left-control' id='left-control'>
        <img src='images/options.png' class='ctrl-image'/>
    </div>
    <div class='controls'>
        <span class="previous" id="previous"><</span>
            <input type='text' name='text-control' id='text-control' />
            <span class="next" id="next">></span>
        <input type='button' id='send' value='send' />
    </div>
    <div class='right-control' id='right-control'>
        <img src='images/options.png' class='ctrl-image'/>
    </div>
</div>

JS代码 class1 =查看

// some stuff

_data=$("#user-input").val();
$(".command-processor").off("click","#send");
$(".command-processor").on("click","#send",function()
{
    f.sendData(_data,dest);
});

class2 = Field

$(".command-processor").off("click","#send");
$(".command-processor").on("click","#send",function()
{
    var data=[];
    var item={};
    if(this.fieldData)
    {
        for(i=0;i<this.fieldData.length;i++)
        {
            item[this.fieldData[i].FieldName]=this.fieldData[i].DefaultValue;
        }
        data.push(item);
        var _data = JSON.stringify(data);
        f.sendData(_data,dest);
        this.fieldData=null;
    }
});

当First Class View 加载到浏览器时,发送按钮的类点击事件运行良好, 并且第二个类字段被加载到浏览器,发送按钮的类点击事件运行良好。

在第一堂课完成后,我正在从我的时间班加载第二堂课。

在第二课中,当发送按钮触发时,一旦完成发送按钮功能执行完毕, 我想激活第一堂课查看点击按钮事件

提前致谢!等待回复

1 个答案:

答案 0 :(得分:0)

在你的第二个类中,发送按钮点击触发器,执行click事件后,从第一个类调用方法,重新初始化第一个类中的事件。 第二类:

$(".command-processor").off("click","#send");
$(".command-processor").on("click","#send",function()
{
    var data=[];
    var item={};
    if(this.fieldData)
    {
        for(i=0;i<this.fieldData.length;i++)
        {
            item[this.fieldData[i].FieldName]=this.fieldData[i].DefaultValue;
        }
        data.push(item);
        var _data = JSON.stringify(data);
        f.sendData(_data,dest);
        this.fieldData=null;
        ctrl.trigger("ReInitialize",[]);
    }
});

头等舱

ctrl.on("ReInitialize",function(event,info)
{
       this.initEvents();
});

这是在类和原型之间工作的示例代码