Javascript coffeescript:jquery单击函数只触发一次

Javascript coffeescript:jquery单击函数只触发一次,javascript,jquery,facebook,coffeescript,Javascript,Jquery,Facebook,Coffeescript,我一直在寻找答案,但找不到有效的答案 基本上,我有一个功能可以发布到facebook墙或twitter提要,但单击功能只启动一次 代码如下: $('.social a').on 'click', (e) -> e.preventDefault() book = book.collectMeta $(@).parents('.book') if $(@).hasClass 'fb-share' postFacebook book if $(

我一直在寻找答案,但找不到有效的答案

基本上,我有一个功能可以发布到facebook墙或twitter提要,但单击功能只启动一次

代码如下:

$('.social a').on 'click', (e) ->
    e.preventDefault()
    book = book.collectMeta $(@).parents('.book')

    if $(@).hasClass 'fb-share'
        postFacebook book

    if $(@).hasClass 'twitter-share'
        postTwitter book
触发的collectMeta函数如下:

book = 
    collectMeta: (dom) ->
        # Helper function that collects data of a book and prepares it 
        # for sharing on sociall media

        # The argument for this function accepts the parent DOM Object
        # that searches for the appropriate Meta Data

        $title = dom.find '.book-title'
        title = helper.cleanWhite $title.text()

        $author = dom.find '.book-author'
        author = helper.cleanWhite $author.text()

        $description = dom.find '.book-description'
        description = helper.cleanWhite $description.text()
        description = helper.trimText(description, 140)

        $link = dom.find '.book-link'
        link = glob.baseUrl() + $link.attr 'href'

        $image = dom.find '.book-image'
        image = glob.baseUrl() + $image.attr 'src'

        return book = 
            title: title
            caption: author
            description: description
            link: link
            image: image
我在第一次点击后收到的错误是: book.collectMeta不是一个函数


非常感谢您的帮助

您的第一次单击正在调用一个不存在的函数:
book.collectMeta
。这会扼杀你的脚本,所以之后一切都不起作用

在我看来,这可能是因为您正在重写此行中的book变量:

 book = book.collectMeta $(@).parents('.book')
所以,第一次点击会起作用,但之后的点击不会起作用,因为book不再具有与之相关联的功能