在不同场合添加/删除事件

时间:2014-09-01 13:54:12

标签: jquery

作为jQuery的新手,我遇到了一个问题。这个想法如下: 我们有一个管理面板,您可以在其中单击按钮以在LINK上添加新成员或编辑现有的成员。两次点击都触发同一个窗口,区别在于LINK提供了一个ID,该ID为成员获取数据并将其填入表单中。标准,不是吗?这是由别人做的,今天我试图覆盖一些功能并添加一些新东西。我得到了这段代码:

        // This happens to work.
        var handler_for_edit_window = function() {
            jQuery("#company_name_field").keyup(function(){
                jQuery("#company_name_feed").val(this.value.replace(/ /g, "_").toLowerCase());
            });          
        };

        // I smelt the problem is somewhere here.
        jQuery( ".admin_buttons" ).bind( "click", handler_for_edit_window);
        jQuery( ".edit_row_btn" ).unbind( "click", handler_for_edit_window);

“handler_for_edit_window”可以完美地运行并完成它应该做的事情。但是,老板只想在新成员上添加功能,并在现有成员上删除它。为此,我在“handler_for_edit_window”中移动了该功能,并尝试根据BUTTON / LINK绑定/取消绑定它。实际上是这样的:

  1. 单击按钮(添加新成员) - 具有功能
    1.1。单击LINK(编辑现有) - 具有功能

  2. 点击LINK(编辑) - 无功能
    2.1。点击BUTTON(新) - 具有功能
    2.2。点击链接(编辑) - 再次具有功能

  3. 决定 - 当我们点击按钮时,它会添加所需内容,但是当我们点击链接时,我们仍然有这个并且无法将其删除...

    如果你给我一些观点和/或想法,我们会很高兴。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您需要标记click个事件,以便您可以单独取消它们。 jQuery允许你这样做:

$( ".admin_buttons" ).on('click.mytag', function() { } );
$( ".edit_row_btn" ).off('click.differenttag', function() { } );

老实说,我并没有真正了解你的确切情况(你的代码很容易让人感到困惑 - 为什么你有约束力,然后立即解除绑定。另外,你还要解开一个功能 - 你还有什么期望呢? ?当点击时运行一个函数?我不知道......)。但希望您能够了解事件标记以及如何使用它

还有两件事:

  1. 使用.on,因为.bind是旧语法,已被弃用了很长时间
  2. 您可以使用$而不是每次都写jQuery