我的HTML
结构
<tr class="">
<td class="day">20</td>
<td class="day">21</td>
<td class="day">22</td>
<td class="day">23</td>
<td class="day">24</td>
<td class="disabled day">25</td>
<td class="disabled day">26</td>
</tr>
<tr class="">
<td class="day">13</td>
<td class="day">14</td>
<td class="day">15</td>
<td class="day">16</td>
<td class="day">17</td>
<td class="disabled day">18</td>
<td class="disabled day">19</td>
</tr>
jQuery脚本
<script>
$(function(){
$(".day").click(function() {
alert('Test');
var first = $(this).closest('tr').children('td:first').text();
var last = $(this).closest('tr').children('td:last').text();
$("span#date-range").append( "(Oct "+first+"- Oct "+last+")" );
});
});
</script>
在页面加载时,当用户点击任何<td>
时,它会显示正确的值,但如果用户再次单击它,则不会执行任何操作。点击后,HTML
结构保持不变,但在Firebug Console
中看到时会显示。
首先点击
首次点击后,即后续点击
如果上述内容发生变化,如何在<td>
上启用多次点击。
感谢。
答案 0 :(得分:1)
你的html表应该有效,它应该有效。请参阅附件的工作片段:
$(function(){
$(".day").click(function() {
alert('Test');
var first = $(this).closest('tr').children('td:first').text();
var last = $(this).closest('tr').children('td:last').text();
$("span#date-range").append( "(Oct "+first+"- Oct "+last+")" );
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<table>
<tr class="">
<td class="day">20</td>
<td class="day">21</td>
<td class="day">22</td>
<td class="day">23</td>
<td class="day">24</td>
<td class="disabled day">25</td>
<td class="disabled day">26</td>
</tr>
</table>
<tr class="">
<td class="day">13</td>
<td class="day">14</td>
<td class="day">15</td>
<td class="day">16</td>
<td class="day">17</td>
<td class="disabled day">18</td>
<td class="disabled day">19</td>
</tr>
</table>
答案 1 :(得分:0)
我认为这个问题可以通过使用.live或.on方法
来解决$(function(){
$(document).on('click','.day',function() {
alert('Test');
var first = $(this).closest('tr').children('td:first').text();
var last = $(this).closest('tr').children('td:last').text();
$("span#date-range").append( "(Oct "+first+"- Oct "+last+")" );
});
});