IF / THEN咖啡脚本链接

时间:2011-10-29 21:11:03

标签: javascript coffeescript

我正在学习咖啡脚本...我有一些默认为JS弹出窗口的代码 - 但我也想用mailto和其他内容自定义一些链接,并且只有在没有主要内容时才默认使用JS方向

例如...如果用户点击REQUEST ADMIN PRIVILEGES我想要一个mailto弹出而不是那个说“这个功能不可用”的JS

onPhotosLoaded = (sampledata) ->
            if !sampledata || sampledata?.success == false
                jvmw.empty().append('Gallery not found')
                return
            # once the photos are loaded
            jvu.waitCss $("#jv_mw"), 'jv-colorbox-css-loaded', ->
                $.colorbox.init()
                jvmw.empty()
                afterPhotosAndTags() # don't load tags before getting here.

                email = "#{gal_code}@phto.us"

                addMorePhotosInfoDiv = $ """<div/>""" 
                addMorePhotosButton = $ """<div style="float:left;font-size:32px"><br>Everyone's photos from "<span class="jvreplacewitheventname">this event</span>" <a class="jvaddmorephotosbutton" href="#">+Add yours!</a> <br/> </div>"""
                addMorePhotosInfoDiv.append addMorePhotosButton
                dragDropDiv = $ '<div class="jvdragzoneparent" />'
                addMorePhotosInfoDiv.append(dragDropDiv).append('<div style="clear:both;" />')
                extraTestButtons = $ '<div id="jvextratestbut" />'
                extraTestButtons.append('<a href="mailto:adminplease@albumpl.us">Request Admin Privileges</a> |  | <a href="#">Turn SMART BROWSE (ON)</a> | ' + 
                    ' | <a href="#">Purchase prints and other merchandise</a>|| <a href="http://www.albumpl.us/gallery/#{gal_code}/live">Live View</a>')

                extraTestButtons.find('a').click ->
            if $(this).text() == 'Request Admin Privileges'
            # <a href="mailto:adminplease@albumpl.us">Request Admin Privileges</a>
                 return false
            # default thing to do is show the dialog - and register the event.
                showNotYetAvailableMessage($(this).text())
     return false

    extraTestButtons.find('a').click ->
  if $(this).text() == 'Live View'
    # <a href="http://www.albumpl.us/gallery/#{gal_code}
            return false
  # default thing to do is show the dialog - and register the event.
          showNotYetAvailableMessage($(this).text())
         return false

2 个答案:

答案 0 :(得分:4)

你使用太多缩进,更糟糕的是,你的注释与它们对应的代码不一致。这使得你的代码很难阅读,甚至可能会使编译器瘫痪 - 特别是如果你同时使用制表符和空格(不要这样做!)。

取代当前的

if $(this).text() == 'Request Admin Privileges'
# <a href="mailto:adminplease@albumpl.us">Request Admin Privileges</a>
     return false
# default thing to do is show the dialog - and register the event.
    showNotYetAvailableMessage($(this).text())

写一下

if $(this).text() == 'Request Admin Privileges'
  return false
showNotYetAvailableMessage($(this).text())

甚至,使用CoffeeScript的后缀条件

return false if $(this).text() == 'Request Admin Privileges'
showNotYetAvailableMessage($(this).text())

答案 1 :(得分:3)

哇..如果你选择咖啡,那就写下它的风格。

使用其缩进样式和一些shugar,如'is','not'等。不要使用额外的语法。

if $(this).text() is "Request Admin Privilegies"
  return false 
showNotYetAvailableMessage $(this).text()

尝试使用方法,一切都是表达式,它返回一些东西。它对if..else,switch ..语句非常有用。

至于我,使用像

这样的风格
$ "div"

非常糟糕:)如果您有一些问题,需要付出一些努力来将您的代码复制到jquery论坛。

jQuery的其他糟糕方法是使用

$(@)

而不是

$(this)

咖啡很棒!正确使用它!