event.cyTarget придерживаться предыдущего события

0

Это мой код, я щелкнул правой кнопкой мыши по одному узлу и отобразится диалоговое окно, а затем я поставлю галочку в этом диалоговом окне, чтобы скрыть это. Тем не менее, кажется, каждый раз, когда я нажимаю правой кнопкой мыши более одного узла (не проверяя флажок для предыдущего узла, но проверяя флажок текущего узла), он скроет все ранее щелкнутые правой кнопкой вместо того, чтобы скрывать текущий щелчок правой кнопкой мыши один. Вот код:

cy.on('cxttap','node',function(e) {
  var target = e.cyTarget;
  //after clicking node, display dialog, where a checkbox is shown.
  $("#dialog-rightClick").dialog({
    width:250,
    title:target.id(),
    position:{my: 'left',at: 'right',of:e} 
  });
 //checkbox, if checked, hide the node, otherwise,show all nodes
 $('#hdNode').change(function(){
      if(this.checked){
  //    for (var i=0;i<target.length;i++)
  //{
  //  console.log(target[i].data());
  //  }
        target.hide();

      }
      else{
        target.show();
      }
    });

Кто-то помогает мне? Огромное спасибо

Теги:
cytoscape.js

1 ответ

0
Лучший ответ

Я написал тесты, чтобы подтвердить, что события, включая cxttap, действительно помещают правильный e.cyTarget для последовательных триггеров. Если вы подтвердите, что на стороне cy.js есть ошибка, а не где-либо еще в коде вашей системы, пожалуйста, сообщите о проблеме с кратким кодом, который воспроизводит ошибку: https://github.com/cytoscape/cytoscape.js/issues/new

  • 0
    если вы тестируете e.cyTarget перед вызовом $ ("# dialog-rightClick"). dialog (). это будет работать, но target.hide () в $ ('# hdNode'). change (function () {} будет придерживаться предыдущего события.
  • 0
    Можете ли вы подтвердить это без диалога? В противном случае, это почти наверняка вопрос диалога.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню