作为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。单击LINK(编辑现有) - 具有功能
点击LINK(编辑) - 无功能
2.1。点击BUTTON(新) - 具有功能
2.2。点击链接(编辑) - 再次具有功能
决定 - 当我们点击按钮时,它会添加所需内容,但是当我们点击链接时,我们仍然有这个并且无法将其删除...
如果你给我一些观点和/或想法,我们会很高兴。
答案 0 :(得分:0)
如果我理解正确,您需要标记click
个事件,以便您可以单独取消它们。 jQuery允许你这样做:
$( ".admin_buttons" ).on('click.mytag', function() { } );
$( ".edit_row_btn" ).off('click.differenttag', function() { } );
老实说,我并没有真正了解你的确切情况(你的代码很容易让人感到困惑 - 为什么你有约束力,然后立即解除绑定。另外,你还要解开一个功能 - 你还有什么期望呢? ?当不点击时运行一个函数?我不知道......)。但希望您能够了解事件标记以及如何使用它
还有两件事:
.on
,因为.bind
是旧语法,已被弃用了很长时间$
而不是每次都写jQuery