【问题标题】:Is there a way to unbind jquery.address?有没有办法解除 jquery.address 的绑定?
【发布时间】:2011-08-22 14:04:58
【问题描述】:

如何取消 jquery.address 行为?

$('a').unbind(); // Doesn't work for me..

【问题讨论】:

  • $('a').unbind('address'); ?
  • 你在使用asual.com/jquery/address吗?
  • @J0HN 不,我在$('a').address(); 之后得到了,但没有任何效果。
  • @Matt Mos def。没有关于这个问题的消息。
  • 是否允许点击超链接而不重定向?

标签: jquery jquery-plugins jquery-address


【解决方案1】:

只是看了一下库,没有公开特定的函数用于解除绑定,但我确实看到了一个私有函数调用 _unload 但你无法访问它..

无论如何,我都会对使用 autoUpdate 函数大喊大叫.. 将 false 传递给它并查看..

【讨论】:

  • 啊啊啊啊! $.address.autoUpdate(false); 成功了!但我不太明白 autoUpdate 服务的目的。还是谢谢!
  • 没问题..记得看插件本身..有帮助..:)
【解决方案2】:

unbind 对我有用,但它开始表现得像普通锚链接一样,并将重定向到其中设置的 href。如果你不使用它的默认行为,那么你可以试试这个。

//Please use a appropriate selector to select only the anchors to which you have
//applied address plugin
$('a').unbind().click(function(e){
   e.preventDefault();
});

【讨论】:

  • 这将删除绑定到 all 链接的 all 事件处理程序,这对我来说似乎有些笨拙。
  • @Matt - 我同意你的观点,但这只是一个例子,显然 OP 必须有一个锚点的类名或 id 才能选择所有锚点。
  • @Matt - 感谢我在回答中添加了必要的评论。
  • @ShankarSangoli 正常的链接行为正是我想要的,但$('a').unbind(); 对我不起作用,正如我在问题中提到的那样。
  • @Jibiel - unibind 解除绑定到元素的所有事件处理程序。
【解决方案3】:

http://jsfiddle.net/6rMHh/

$('body').delegate('a','click',function(){
    return false;
});

【讨论】:

  • 谢谢,但这只是 stop load();并且哈希仍然添加到网址中。
猜你喜欢
  • 2016-02-15
  • 1970-01-01
  • 1970-01-01
  • 2012-07-07
  • 1970-01-01
  • 1970-01-01
  • 2012-07-07
  • 2016-11-03
  • 2019-12-25
相关资源
最近更新 更多