0

複数の入力タイプのチェックボックスがあります-それらのいずれかがチェックされている場合、列を追加したい(一度だけ)-つまり、最初のチェックボックスタイプの後に他のチェックボックスタイプのいずれかがマークされている場合、追加したくありません再び列を作り続けます。各チェックボックスタイプの入力ごとに1回だけ追加しました。ただし、ドキュメント全体 (つまり、ページ上のすべてのチェックボックス) で列を 1 回だけ追加することも必要です。

コードの関連部分は次のとおりです

<table id="edhist_table" >
<tr id="table_headings">
    <th>Graduated?</th>     
</tr>

    <tr>            
       <td><input type="checkbox" name="college_grad" value="yes">yes</input></td>

</tr>   
<tr id='grad_part'>

    <td><input type="checkbox" name="grad_grad1" value="yes">yes</input></td>   

</table>


<script>
//if any of the checkboxes are checked  - shoudl append column  
$( "[type=checkbox]").one("click",function() {
    $( "#table_headings" ).append("<th id='degree_heading'>Degree/Certificate Name</th>");

どんなアイデアでも大歓迎です。

4

2 に答える 2

1

.one要素ごとに最大 1 回実行されます。つまり、要素ごとに 1 回起動します (これにより重複が発生します。要素が追加されているかどうかを確認し、追加されていない場合は追加する必要があります。次のように変更できます。

$( "[type=checkbox]").one("click",function() {
   if ( $( "#table_headings #degree_heading" ).length==0)
      $( "#table_headings" ).append("<th id='degree_heading'>Degree/Certificate Name</th>");
});
于 2013-04-05T19:13:55.923 に答える
1

Just close your function:

$( "[type=checkbox]").one("click",function() {
    $( "#table_headings" ).append("<th id='degree_heading'>Degree/Certificate Name</th>");
}); // <-- Here

Demo: http://jsfiddle.net/pYx6b/

于 2013-04-05T19:14:36.137 に答える