首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >避免在某些情况下使用jquery更改td bgcolor?

问避免在某些情况下使用jquery更改td bgcolor?
EN

Stack Overflow用户
提问于 2012-03-07 21:23:19
回答 1查看 235关注 0票数 1

嗨,

我有一个包含16个td tags.Every的表,td有鼠标经过和鼠标移出事件来改变td的背景色,但问题是,如果用户点击某个td,td标签的背景色必须更改为其他颜色,对于这个td,鼠标移出/移出事件不应该是occurred.Means,td的背景色不应该在鼠标移转和鼠标移出事件上更改,在我的代码中clicked...What是错误的吗?

这是我的代码.

代码语言:javascript
复制
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <meta name="Generator" content="EditPlus">
  <meta name="Author" content="">
  <meta name="Keywords" content="">
  <meta name="Description" content="">
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
  <style>

  table,table td{
   border:1px solid;
  }
  </style>
 </head>

 <body>

  <table>
   <tr><td>1</td><td>2</td><td>3</td><td>4</td></tr>
   <tr><td>5</td><td>6</td><td>7</td><td>8</td></tr>
   <tr><td>9</td><td>10</td><td>11</td><td>12</td></tr>
   <tr><td>13</td><td>14</td><td>15</td><td></td></tr>
  </table>
 </body>

 <script>
  $(document).ready(function(){

   $('table td').mouseover(function(){
   if($(this).selected!='X')
     $(this).css({'background-color':'#ffff66'});
   });

   $('table td').mouseout(function(){
     if($(this).selected!='X')
    $(this).css({'background-color':'#fff'});
   });

  $('table td').click(function(){
    $(this).css({'background-color':'#6666ff'});
    $(this).selected='X';
   });

  });
 </script>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-07 21:31:05

在'click‘发生后,你必须解除'mouseover’和'mouseout‘的绑定

你的点击处理程序应该是这样的-

代码语言:javascript
复制
 $('table td').click(function(){
    $(this).css({'background-color':'#6666ff'});       
    $(this).unbind('mouseout');
    $(this).unbind('mouseover');
   });

或者像这样更好-

代码语言:javascript
复制
$('table td').click(function(){
    var td = $(this);
    td.css({'background-color':'#6666ff'});       
    td.unbind('mouseout');
    td.unbind('mouseover');
   });

有关解除绑定here的详细信息

也就是说,如果你像这样设置和访问索引为0的'selected‘,你的代码仍然可以工作--

代码语言:javascript
复制
$(this)[0].selected='X'

$(this)每次都返回一个新的数组对象。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9602314

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档