我已经找到了答案,找不到有效的答案。
基本上我有一个发布到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不是函数
非常感谢任何帮助!
答案 0 :(得分:1)
您的第一次点击是调用不存在的函数:book.collectMeta
。这会杀死你的脚本,所以之后什么都不会有用。
在我看来,这可能会发生,因为你在这一行中覆盖了book变量:
book = book.collectMeta $(@).parents('.book')
所以第一次点击会起作用,但后来的点击不会,因为书籍不再具有与之相关的功能。