【问题标题】:Disable dynamically a jquery plugin动态禁用 jquery 插件
【发布时间】:2010-05-19 13:00:02
【问题描述】:

我使用jquery numeric plugin 只允许在某些字段中输入数字。

$("input.numeric").numeric();

我想在某些情况下动态禁用此功能,以允许用户键入其他字符(即字母)。 我尝试使用 unbind() 或 undelegate() 函数但没有成功。

有人知道解决办法吗? 谢谢

【问题讨论】:

  • 你是如何使用.unbind()的?数字插件似乎只是将keypress 处理程序绑定到输入,因此$("input.numeric").unbind(); 应该删除该(以及所有其他)处理程序。
  • 感谢您的帮助。最后,我找到了这个解决方案: $('#my_elt').unbind('keypress').unbind('blur');我取消绑定插件使用的所有事件。

标签: jquery function plugins


【解决方案1】:

此插件包含函数removeNumeric();

而且它几乎是正确的。 首先,您应该在 jquer.numeric 插件中添加一些修复:

removeNumeric 函数处插入unbind("keyup", $.fn.numeric.keyup)

$.fn.removeNumeric = function()
{
  return this.data("numeric.decimal", null).data("numeric.negative",
  null).data("numeric.callback", null).unbind("keypress",
  $.fn.numeric.keypress).*unbind("keyup",
  $.fn.numeric.keyup)*.unbind("blur", $.fn.numeric.blur);
}

嗯,在那之后,你可以试试$("input.numeric").removeNumeric(); 适合我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    • 2010-12-09
    • 2011-01-20
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多