Повторно связать событие клика после перезагрузки div - PullRequest
0 голосов
/ 27 сентября 2019

Следующий фрагмент кода взят из jquery.graphviz.svg Внутри div есть изображение svg, которое называется "graph".Когда содержимое div заменяется другим svg, зарегистрированное здесь событие click теряется.

$(document).ready(function(){
                $("#graph").graphviz({
                    url: "demo.svg", 
                    ready: function() {
                        var gv = this
                        gv.nodes().click(function () {
                            var $set = $()
                            $set.push(this)
                            $set = $set.add(gv.linkedFrom(this, true))
                            $set = $set.add(gv.linkedTo(this, true))
                            gv.highlight($set, true)
                            gv.bringToFront($set)
                        })
                        $(document).keydown(function (evt) {
                            if (evt.keyCode == 27) {
                                gv.highlight()
                            }
                        })
                    }
                });
            });

Я попытался изменить "gv.nodes (). Click (function () {" на следующее без удачи

$ (document) .on ("click", gv.nodes (), (function () {...}

Есть ли другой способ решить эту проблему?

ОБНОВЛЕНИЕ:

При обратном вызове мутации оповещение работает в обратном вызове, но перерегистрация события щелчка не работает:

var gv = $('#graph').data('graphviz.svg')    
gv.nodes().off().on('click',function () {alert('entered doc clck')
...