何らかの理由で、正しく機能するために 2 回連続してクリックする必要がある JavaScript があります。リンクのコードは次のとおりです。
<a href="" onclick="select_all_com(); return false">Select All</a>
次に、onclick で呼び出される関数のコードを示します。
function select_all_com(){
$("[name=file_com_appeal].com-checkbox").each( function() {
$(this).attr('checked', true);
});
UpdateTotalFee();
}
最後に、最後のコードは次のとおりです。
function UpdateTotalFee(){
var AppealCount = 0;
$('input[name=file_com_appeal].com-checkbox').each(function(){
if( $(this).next().hasClass('checked') ){
AppealCount++; }
});
$('#AppealFeeTotal').text("$"+(AppealCount*140));
}
この最後の部分は、リンクが最初にクリックされたときに実行されるはずですが、何らかの理由で最初は実行されず、2 回目だけ実行されます。具体的には、最初のクリックですべてのチェックボックスがオフからオンに更新されますが、#AppealFeeTotal
. チェックボックスがすでに選択されている場合に、[すべて選択] リンクをクリックすると、#AppealFeeTotal
が更新されます。
これが2回のクリックを必要とする理由はありますか? また、特によくわからないコード行が 1 行あることも付け加えておきます。私は他の誰かからコードを継承しましたが、これが使用される理由がわかりません:
if( $(this).next().hasClass('checked') ){
アイデアをお寄せいただきありがとうございます。