1

要素の可視性を切り替えるために、基本的な more/less リンクを追加しようとしています。

を挿入するにはどうすればよいpreventDefaultですか?

また、最初のトグルでのみ機能し、その後はトグルアウトしません。エラーはありますか?

$("#description-link").click ->
  $("#project-description").show()
  $(this).text("Show description")
, ->
  $("#project-description").hide()
  $(this).text("Hide description")
4

2 に答える 2

2

代わりに、次のようなことを試すことができます。

$("#description-link").click (e) ->
  e.preventDefault()
  $('#project-description').toggle()
  a = $(this).text()
  a = if (a == 'Show Details') then 'Hide Details' else 'Show Details'
  $(this).text(a)

どうやら と の間のスペースclick(e)必要です。それ以外の場合、TypeError がスローされます。

編集:関数宣言の一部であるため、スペースが必要な理由を理解しました。これまでCoffeescriptをいじったことはありません。/フェイスパーム

于 2013-05-09T15:59:43.607 に答える
1

preventDefault() にアクセスするには、イベント引数を関数に追加し、その上で preventDefault メソッドを呼び出す必要があります。

$("#description-link").click (event) ->
  event.preventDefault()
  ....
于 2013-05-09T15:50:46.057 に答える