javascript - SmartyStreets jQuery.liveaddress插件,如何解除事件绑定(bind)

标签 javascript jquery jquery-plugins smartystreets

我在 Angular 单页应用程序中使用 smarty street jquery.liveaddress 插件。当我转换到下一页时,我需要从 liveaddress 实例中解除所有事件监听器的绑定(bind)。现在,如果我返回页面,所有事件都会触发两次,然后下次在页面上时,会触发三次。

我已经尝试了所有我能想到的方法。我的最后一个解决方案是从 $(document) 中解除所有事件名称的绑定(bind),因为它看起来就是插件将所有事件附加到的位置。但即使这样也行不通。

jQuery(document).unbind("AddressChanged");
        jQuery(document).unbind("AutocompleteUsed");
        jQuery(document).unbind("VerificationInvoked");
        jQuery(document).unbind("RequestSubmitted");
        jQuery(document).unbind("ResponseReceived");
        jQuery(document).unbind("RequestTimedOut");
        jQuery(document).unbind("AddressWasValid");
        jQuery(document).unbind("AddressWasAmbiguous");
        jQuery(document).unbind("AddressWasInvalid");
        jQuery(document).unbind("AddressWasMissingSecondary");
        jQuery(document).unbind("OriginalInputSelected");
        jQuery(document).unbind("UsedSuggestedAddress");
        jQuery(document).unbind("InvalidAddressRejected");
        jQuery(document).unbind("AddressAccepted");
        jQuery(document).unbind("Completed");

最佳答案

对于任何尝试在 Angular 应用程序中实现 SmartyStreets jquery.liveaddress 插件的人来说都可以。

诀窍是不注册匿名事件处理程序。

在我的例子中,我在指令中实例化 SmartyStreets,因此将所有事件处理程序放在范围内,并在 $destroy 上调用 liveAddress.deactivate() 。不再有重复的事件。

关于javascript - SmartyStreets jQuery.liveaddress插件,如何解除事件绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35048330/

相关文章:

javascript - 如何根据屏幕尺寸在 div 中显示不同的图像?

jQuery FlexNav 子菜单在视口(viewport)后面迷路了

JavaScript:深度复制 Image() 对象

php - Ajax 请求在我的 php 代码中不起作用

javascript - 黑客可以向我的 jQuery 函数中注入(inject)值吗?

jquery - 在 fancybox 画廊内鼠标悬停时交换图像?

javascript - 将 Json_encode 获取到不同的 jQuery 页面

jQuery 类选择器仅选择该类的第一个元素

javascript - 使用 javascript 订购随机表单选项

javascript - 我怎样才能从这个项目中删除 bower 并将 requirejs 与 yarn (noob) 一起使用?