我和下一个人一样爱JQuery,但我只想用JavaScript完成此任务。我一直在搜寻互联网,我所能找到的只是JQuery解决方案和几个无法正常工作的JavaScript解决方案。这是我所能找到的最干净的一个,但它似乎不适用于任何人,但它确实很旧。我什至无法将它的工作原理包起来,而是将变量设置为赋值。
无论如何,我将代码放在一个中,JsFiddle因此易于操作。
这只是JS中过于复杂的任务之一,然后JQuery进来并完全简化了它吗?
谢谢!
... *是*
element.disabled = !element.disabled;
Run Code Online (Sandbox Code Playgroud)
它的作用应该很明显,但是也许您是JS或编程的新手,所以我将尝试解释一些基本的代码错误:
确实,您确实分配了一个变量,但从未使用过,也许您的意思是这样的
element.disabled = element.disabled ? false : true;
Run Code Online (Sandbox Code Playgroud)
尽管这可能行得通,但仍然太冗长,您是一个程序员,请聪明!
那就是!(boolean negate)出现的地方,因为您要切换boolean,所以您最好使用not / negate运算符来否定当前状态。
element.disabled = !element.disabled;
Run Code Online (Sandbox Code Playgroud)
这是很普遍的,并且存在于大多数(即使不是全部)编程语言中,在JS中,它会自动将值转换为布尔值true / false,如果您还不熟悉javascript,则应阅读有关强制类型的内容。
我想这是特定于实现的,但是我会假设内部javascript使用getter / setter,尽管它们在javascript中不存在...但是,这将随着ECMA6的改变而改变!