coffeescript:jquery点击功能只触发一次

时间:2014-02-10 19:55:34

标签: javascript jquery facebook coffeescript

我已经找到了答案,找不到有效的答案。

基本上我有一个发布到Facebook墙或推特供稿的功能,但点击功能只会触发一次。

以下是代码:

$('.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不是函数

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您的第一次点击是调用不存在的函数:book.collectMeta。这会杀死你的脚本,所以之后什么都不会有用。

在我看来,这可能会发生,因为你在这一行中覆盖了book变量:

 book = book.collectMeta $(@).parents('.book')

所以第一次点击会起作用,但后来的点击不会,因为书籍不再具有与之相关的功能。