我的代码意味着有一个表格,当点击td将变为红色。再次单击时,td将变回正常颜色。我有这个使用下面列出的代码。接下来,我希望得到它,以便如果用户将鼠标按住每个td,他将盘旋成红色。我不知道该如何解决这个问题?目前的代码是:
<style>
.Selected{
background-color :red;
}
</style>
<script>
$(document).ready(function() {
$('#WeekTable td').live('click', 'td', function() {
$(this).toggleClass('Selected');
});
$('#Which').click(function() {
$('.Selected').each(function(index){
alert($(this).attr("ID"));
})
});
});
</script>
<table id="WeekTable" >
<tr id="WeekRow">
<td value = "1" id="Week1">1</td>
<td value = "2" id="Week2">2</td>
<td value = "3" id="Week3">3</td>
<td value = "4" id="Week4" >4</td>
<td value = "5" id="Week5">5</td>
<td value = "6" id="Week6">6</td>
<td value = "7" id="Week7">7</td>
<td value = "8" id="Week8">8</td>
<td value = "9" id="Week9">9</td>
<td value = "10" id="Week10">10</td>
<td value = "11" id="Week11">11</td>
<td value = "12" id="Week12">12</td>
<td value = "13" id="Week13">13</td>
<td value = "14" id="Week14">14</td>
<td value = "15" id="Week15">15</td>
</tr>
</table>
<button id="Which" >Which Weeks?</button>
谢谢你们!
答案 0 :(得分:1)
我会设置一个变量来记住鼠标当前是否被按下。
mouseIsDown = false;
$(window).mousedown(function(){
mouseIsDown = true;
});
$(window).mouseup(function(){
mouseIsDown = false;
});
然后在td hover事件回调中使用该变量
$("#WeekTable td").hover(function(){
if(mouseIsDown) $(this).addClass("Selected");
});
点击你不必使用直播活动,只需:
$("#WeekTable td").click(function(){
$(this).toggleClass('Selected');
});
答案 1 :(得分:0)
这是一种解决方法。您可以将mousedown
事件与jQuery一起使用。默认情况下设置dragging
的全局布尔值false
,并在按住鼠标按钮时将其设为true
,并在释放时返回false
:
$(document).ready(function() {
var dragging = false;
$('html').mousedown(function(e){
dragging = true;
})
$('html').mouseup(function(e){
dragging = false;
});
$('#WeekTable tr td').mouseover(function(e){
if (dragging) {
$(this).css('background-color', 'red');
}
});
});