在jQuery/JS中临时禁用PatternLock

PatternLock temporary disable in jQuery/JS

本文关键字:PatternLock jQuery JS      更新时间:2023-09-26

我使用第三方库来模拟使用js和jQuery的3x3 android模式锁屏。

回购:https://github.com/s-yadav/patternLock

模拟器:http://ignitersworld.com/lab/patternLock.html#intro

我想在PatternLock.prototype中添加disable()enable()函数,以便在运行例程以保存用户之前绘制的图案时禁用用户绘制新图案的能力。因此,用户需要能够看到他们的模式,但在例程结束并重新启用锁之前,不能绘制新的模式。

最好的方法是什么?内置的事件处理程序是匿名函数,所以我避免使用.off().on()。添加类patt-hidden仍然允许新模式在绘制后显示,只是在绘制时不显示。有人知道该朝哪个方向发展,或者以前尝试过为此编写禁用方法吗?

这很不雅,但我通过向pattern.js添加全局布尔var disabled = false来破解它,该函数在PatternLock原型中的两个辅助函数enabled()和disable()中切换。然后在每个事件处理程序的开头运行一个检查,如果disabled===true,则该检查将退出。所选的最新模式保持可见,但锁定会抛出空的单击事件,直到重新启用为止。

我希望听到一个更有效的解决方案。

patternLock 0.4.0+现在在核心中有enable-disable方法。

要禁用/启用,您可以使用

var lock = patternLock('#patternHolder');
lock.disable();
lock.enable();