从点击事件中移除一个函数
Posted
技术标签:
【中文标题】从点击事件中移除一个函数【英文标题】:Remove a function from click event 【发布时间】:2013-05-06 21:15:22 【问题描述】:我对 JS 和 JQuery 非常陌生,所以请多多包涵。
我有一个下拉列表 - 如果您单击该列表,它将调用一个函数,该函数将打开一个浮动框 (div)。现在我们希望在登录时显示该框,断开其与点击事件的关系。但是,如果我只是将代码从函数中取出,请将其放在脚本中 - 就像其他 div 一样,我的页面要么呈现不正确,要么什么都不显示。
这是我的 html 中的内容:
<li><input class="option_btn room_search" value="Search for Room"/></li>
这是我的脚本的样子:
$("input.room_search").click(function()
//var roomSearch = new jabberwerx.ui.MUCSearchView(muc, demo_config.conferencealias);
var roomSearch = new jabberwerx.ui.MUCSearchView(muc, conferencealias);
roomSearch.event("actionComplete").bind(function(evt)
try
try this...
catch (e)
alert("An exception occurred while trying to create/join the MUC room.\n Details: " +
e.message);
roomSearch.destroy();
);
roomSearch.render().appendTo(".muc_search");
roomSearch.dimensions(width:600, height:400);
);
请帮帮我,我试图找到一个与他有关的论坛,但我认为我没有正确的关键字。谢谢!
【问题讨论】:
当您从点击处理程序中删除代码时,您是否将其放入$(document).ready(function() /*your code here*/ );
处理程序中?您的代码尝试附加到 ".muc_search"
元素,因此您需要在解析该元素后运行它。
是的,它在那个处理程序里面——尽管带有点击事件的原始代码也在处理程序里面。您是正确的“您的代码尝试附加到“.muc_search”元素”。我将“.muc_search”更改为“div.muc_search”,并且我的页面正确呈现 - 但默认情况下仍然没有显示浮动框。同时,我发现我可以在登录时强制点击事件,所以现在我可以使用这个解决方法:$("input.room_search").trigger('click');
【参考方案1】:
我没有完全明白你的问题,但是看问题,点击事件可以很容易地被解除绑定
$('#mySelectr').unbind('click');
在 unbind 函数中,给出要取消绑定的任何事件的名称。
【讨论】:
以上是关于从点击事件中移除一个函数的主要内容,如果未能解决你的问题,请参考以下文章