jQueryコードが期待どおりに機能しません。
HTMLは次のとおりです。
<a href="">Some link</a>
<br/>
<a class="delete_file_initial" href="">Delete file</a>
<span class="delete_file_question hide">are you sure to delete?</span>
<a class="delete_file_question confirm hide" href="http://example.com/delete">yes</a>
<a class="delete_file_question cancel hide" href="">no</a>
<br/>
<a class="move_file_initial" href="">Move file</a>
<span class="move_file_question hide">are you sure to move?</span>
<a class="move_file_question confirm hide" href="http://example.com/move">yes</a>
<a class="move_file_question cancel hide" href="">no</a>
そしてJavascript:
$(function() {
// delete file
$("a.delete_file_initial").click(function(event) {
event.preventDefault()
$(this).hide()
$(".delete_file_question").show()
});
$("a.delete_file_question").click(function(event) {
if ($(this).hasClass("cancel")) {
event.preventDefault()
$(".delete_file_question").hide()
$(".delete_file_initial").show()
}
});
// move file
$("a.move_file_initial").click(function(event) {
event.preventDefault()
$(this).hide()
$(".move_file_question").show()
});
$("a.move_file_question").click(function(event) {
if ($(this).hasClass("cancel")) {
event.preventDefault()
$(".move_file_question").hide()
$(".move_file_initial").show()
}
});
});
2つの類似したコードブロックがあります:削除と移動。ロードする実際のURLが異なることを除いて、同じことを行うことになっています。予想される動作は次のとおりです。ユーザーが「削除」/「移動」のリンクをクリックすると、確認リンクが表示され、アクションを確認またはキャンセルします。
問題は、リンク「delete_file_initial」をクリックすると非表示になりますが、リンク「delete_file_question」が表示されず、空白行が残ることです。「move」ブロックは期待どおりに機能します。そして、「move」ブロックにコメントすると、「delete」ブロックが期待どおりに機能し始めます。さらに奇妙なことに、このバグはGoogle Chrome 22.0.1229.79に表示されますが、Firefox15.0.1ではすべて正常に機能します。
このバグを修正する方法は?