我正在学习咖啡脚本...我有一些默认为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
答案 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)
咖啡很棒!正确使用它!