ЕСЛИ / ТО ссылки на кофейные скрипты - PullRequest
0 голосов
/ 30 октября 2011

Я изучаю сценарий кофе ... У меня есть код, который по умолчанию представляет собой всплывающее окно 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 ]

4 голосов
/ 30 октября 2011

Вы используете слишком много отступов, и, что еще хуже, ваши комментарии имеют отступ с кодом, которому они соответствуют.Это делает ваш код очень трудным для чтения и даже может привести к отключению компилятора, особенно если вы используете и табуляцию, и пробелы (не делайте этого!).

Вместо текущего

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())
3 голосов
/ 30 октября 2011

Ух ты .. Если ты выбираешь кофе, то пиши в его стиле.

Используйте стиль отступов и некоторые шугары, такие как "is", "not" и т. Д. Не используйте дополнительный синтаксис.

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

Попытайтесь использовать подход, согласно которому все является выражением и что-то возвращает. Это полезно для операторов if..else, switch ..

Что касается меня, используя стиль как

$ "div"

это ужасно :) и вам нужно приложить некоторые усилия, чтобы скопировать ваш код, например, на форум jquery, если у вас есть вопросы.

Другим плохим подходом для jQuery является использование

$(@)

вместо

$(this)

Кофе отличный! Используйте это правильно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...