Два отдельных события щелчка, имеющих разную функциональность для одной и той же кнопки?

#javascript #jquery #html #requirejs

#javascript #jquery #HTML #requirejs

Вопрос:

Я сам использую RequireJS для динамической генерации кода, а также загрузки элементов всякий раз, когда это необходимо, у меня есть два класса javascript, которые используют одни и те же элементы пользовательского интерфейса (html), теперь я хочу связать событие щелчка в двух классах для одной и той же кнопки. два класса, имеющие совершенно разную функциональность в триггерах кнопок

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 Code
class1 = Просмотр

 // some stuff

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

class2 = Поле

 $(".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;
    }
});
  

Когда в браузер загружается представление первого класса, событие щелчка класса для кнопки отправки работает хорошо,
а также поле второго класса загружается в браузер, событие щелчка класса для кнопки отправки работает хорошо.

после завершения работ первого класса я загружаю второй класс из своего класса time..

Во втором классе, когда срабатывает кнопка отправки, после завершения выполнения функции отправки кнопки я хочу активировать событие щелчка первого класса для кнопки

Заранее спасибо!ожидание ответов

Ответ №1:

в вашем втором классе триггеры нажатия кнопки отправки, после выполнения события щелчка, вызывают метод из первого класса, который повторно инициализирует события в первом классе.. Второй класс:

 $(".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();
});
  

это пример кода для работы между классами и прототипами