Отменить привязку события с помощью dojo к текстовому полю - PullRequest
1 голос
/ 12 марта 2020

У меня есть ссылка " prevBtn ", и я подключаю к ней настраиваемую подсказку " previewBox ", где previewBox имеет текстовое поле и кнопку внутри. Когда я пытаюсь добавить контент в поле ввода, я не могу этого сделать. Его возвращение к событию клика. Я хочу добавить содержимое в свое текстовое поле.

this.addEvent(dojo.connect(prevBtn, 'click', this, function (evt) {
            console.log("Edit me");
            this.addTooltip(prevBtn);
        }));

  addTooltip: function(prevBtn) {        
        var previewBox = dojo.create('div', { className: 'prevBox'}, prevBtn);
        dojo.create("span", {className:"arrowUp"}, previewBox); 
        var input = new dijit.form.TextBox({
            required:true, 
            className: "previewInputBox",
            value: "",
            maxLength: 32,
            style: { width: 145+'px', height: 25+'px'}
        }).placeAt(previewBox);
                dojo.create("h3", {className:"borderBottom"}, previewBox);
        var byUser = new dijit.form.Button({
            label: "Preview",
            onClick: dojo.hitch(this, function() {
                //TODO
            })          
        }).placeAt(previewBox);                       
  },

Я могу предоставить более подробную информацию, если ее будет меньше для понимания. Спасибо

1 Ответ

1 голос
/ 12 марта 2020

Чтобы отменить привязку события после первого клика, нам нужно следовать приведенному ниже коду.

var handle =  this.addEvent(dojo.connect(prevBtn, 'click', this, function (evt) {
            console.log("Edit me");
            this.addTooltip(prevBtn);
            dojo.disconnect(handle);
        }));
...