首页 > 解决方案 > 从.live更新一对jquery切换功能不起作用

问题描述

我有一对用于在混淆和纯文本之间切换密码字段状态的函数。这两个功能都是通过单击锁定图标触发的,并侦听特定类的单击事件。单击锁定图标会做 3 件事:

  1. 切换密码字段的状态
  2. 切换锁定图标的类别
  3. 将锁定图标图像从打开切换到关闭

    $(".show-plain").live("click", function()
    {
    //do toggling
    
    //toggle class
    
    //toggle icon
    }
    
    $(".show-hidden").live("click", function()
    {
    //do toggling
    
    //toggle class
    
    //toggle icon
    }
    

我正在远离已弃用的 .live(),但在升级它时看到了一些奇怪的结果。将事件侦听器更改为以下任一成功...

    $(document).on("click", ".show-hidden", function() 

或者

    $(".show-hidden").click(function()

但是,如果我更新这两个函数以使用其中任何一个选项,则只有第一个函数有效。第二个似乎根本没有触发,浏览器控制台中没有错误信息。如果我留下一个使用 .live() 并将上述任何一种方法用于另一个函数,这两个函数似乎都会立即触发(除非我输入诊断警报消息,否则不会引人注意)。

在花更多时间尝试将这两个功能合并为一个切换功能之前,我正在寻找有关为什么会发生这种情况以及如何避免它的信息,因为 .live() 似乎仍然可以正常工作,但会提供验证错误。

标签: javascriptjquery

解决方案


推荐阅读