どうやら、実際のアラートボックスではなく、閉じるボタンであることが$(x).alert('close')
期待されているため、の親要素を閉じます。たとえば、次のHTMLを指定します。x
x
<div class="flashes">
<div class="message fade in">
<p>Hi <span>there!</span></p>
<p>Where is pancakes house?</p>
</div>
</div>
そしてこのCoffeeScript:
$('.flashes').on 'click', '.message', ->
$(@).find('span').alert('close')
クリックすると最初のが閉じ、、、、および2番目の部分はその<p>
まま.flashes
になります。.message
<p>
デモ: http: //jsfiddle.net/ambiguous/JJbCz/
ただし、CoffeeScriptを.alert('close')
最初の子に変更すると、次のようになります。
$('.flashes').on 'click', '.message', ->
$(@).find(':first-child').alert('close')
次に、期待する結果が得られるはずです。
デモ: http: //jsfiddle.net/ambiguous/wm6jh/
アラートで何かをラップしているところはどこにも見当たりません(つまり$(x).alert()
)。おそらく、あなたはただ悪用.alert('close')
しているだけで、簡単な手動.fadeOut
呼び出しを使用する必要があります。
$('.flashes').on 'click', '.message', ->
$(@).fadeOut('slow')
デモ: http: //jsfiddle.net/ambiguous/uhV6P/
</ p>