Javascript 咖啡脚本:切换;“真的”;及;假;属性

Javascript 咖啡脚本:切换;“真的”;及;假;属性,javascript,jquery,coffeescript,boolean,Javascript,Jquery,Coffeescript,Boolean,我知道这应该很容易,但在四处搜索之后,我似乎找不到答案 我想在true和false之间切换aria属性的值。我希望有一些简单的方法可以做到这一点,但我只能得出以下结论: if @container.attr('aria-hidden') == 'true' @container.attr('aria-hidden', 'false') else @container.attr('aria-hidden', 'true') 我尝试了一些对值求反的方法,但没有成功(我想字符

我知道这应该很容易,但在四处搜索之后,我似乎找不到答案

我想在
true
false
之间切换
aria
属性的值。我希望有一些简单的方法可以做到这一点,但我只能得出以下结论:

  if @container.attr('aria-hidden') == 'true'
    @container.attr('aria-hidden', 'false')
  else
    @container.attr('aria-hidden', 'true')
我尝试了一些对值求反的方法,但没有成功(我想字符串布尔值和实数布尔值之间存在问题,我的意思是
false
“false”

我希望jQuery能够提供如下内容:

@container.toggleBool('aria-hidden')

没有
toggleBoolean
方法。你所能做的就是:

@container.attr 'aria-hidden', !/^true$/.test(@container.attr('aria-hidden'))

PS:我仍然认为您的代码片段更具可读性,因此首选。

没有
toggleBoolean
方法。你所能做的就是:

@container.attr 'aria-hidden', !/^true$/.test(@container.attr('aria-hidden'))

PS:我仍然认为您的代码片段更具可读性,因此首选。

没有
toggleBoolean
方法。你所能做的就是:

@container.attr 'aria-hidden', !/^true$/.test(@container.attr('aria-hidden'))

PS:我仍然认为您的代码片段更具可读性,因此首选。

没有
toggleBoolean
方法。你所能做的就是:

@container.attr 'aria-hidden', !/^true$/.test(@container.attr('aria-hidden'))
PS:我仍然认为您的代码段更具可读性,因此更可取。

从jQuery 1.1开始,接受函数作为第二个参数,其参数是集合中元素的索引位置和旧属性值。那么,像这样的东西(未经测试)呢

从jQuery1.1开始,接受一个函数作为第二个参数,其参数是集合中元素的索引位置和旧属性值。那么,像这样的东西(未经测试)呢

从jQuery1.1开始,接受一个函数作为第二个参数,其参数是集合中元素的索引位置和旧属性值。那么,像这样的东西(未经测试)呢

从jQuery1.1开始,接受一个函数作为第二个参数,其参数是集合中元素的索引位置和旧属性值。那么,像这样的东西(未经测试)呢


我想出了这个解决办法。至少它节省了一些按键

handleEnterAndSpace: ->
  @container.attr('aria-hidden', !@isOpen())

isOpen: ->
  @container.attr('aria-hidden') == 'true'

我想出了这个解决办法。至少它节省了一些按键

handleEnterAndSpace: ->
  @container.attr('aria-hidden', !@isOpen())

isOpen: ->
  @container.attr('aria-hidden') == 'true'

我想出了这个解决办法。至少它节省了一些按键

handleEnterAndSpace: ->
  @container.attr('aria-hidden', !@isOpen())

isOpen: ->
  @container.attr('aria-hidden') == 'true'

我想出了这个解决办法。至少它节省了一些按键

handleEnterAndSpace: ->
  @container.attr('aria-hidden', !@isOpen())

isOpen: ->
  @container.attr('aria-hidden') == 'true'

如果您发现自己经常这样做,您可以创建一个简单的函数来翻转字符串“真值”,假设字符串总是“真”或“假”:

flip = (x)->{'true':'false', 'false':'true'}[x]
. . .
@container.attr 'aria-hidden', flip(@container.attr('aria-hidden'))
但如果两者都不是,那么它将返回未定义,这可能是您想要的,也可能不是您想要的:

coffee> flip('true')
'false'
coffee> flip('false')
'true'
coffee> flip('abcd')
undefined

如果您发现自己经常这样做,您可以创建一个简单的函数来翻转字符串“真值”,假设字符串总是“真”或“假”:

flip = (x)->{'true':'false', 'false':'true'}[x]
. . .
@container.attr 'aria-hidden', flip(@container.attr('aria-hidden'))
但如果两者都不是,那么它将返回未定义,这可能是您想要的,也可能不是您想要的:

coffee> flip('true')
'false'
coffee> flip('false')
'true'
coffee> flip('abcd')
undefined

如果您发现自己经常这样做,您可以创建一个简单的函数来翻转字符串“真值”,假设字符串总是“真”或“假”:

flip = (x)->{'true':'false', 'false':'true'}[x]
. . .
@container.attr 'aria-hidden', flip(@container.attr('aria-hidden'))
但如果两者都不是,那么它将返回未定义,这可能是您想要的,也可能不是您想要的:

coffee> flip('true')
'false'
coffee> flip('false')
'true'
coffee> flip('abcd')
undefined

如果您发现自己经常这样做,您可以创建一个简单的函数来翻转字符串“真值”,假设字符串总是“真”或“假”:

flip = (x)->{'true':'false', 'false':'true'}[x]
. . .
@container.attr 'aria-hidden', flip(@container.attr('aria-hidden'))
但如果两者都不是,那么它将返回未定义,这可能是您想要的,也可能不是您想要的:

coffee> flip('true')
'false'
coffee> flip('false')
'true'
coffee> flip('abcd')
undefined