<script>
function clickRow(thrRow) {
   thrRow.className = "selected";
}function changeCSS() {
 $(".selected").removeClass().addClass("first");
}$(".selected").mousedown(function(e) {
   alert();
}
</script><table>
  <tr class="first" onclick ="clickRow(this)">
    <td>
        td1
    </td>
  </tr>
  <tr class="first" onclick ="clickRow(this)">
    <td>
        td2
    </td>
  </tr>
</table>
<input type="button" value="changeClass" onclick="changeCSS()"/>当我点击td1时会弹出alert(),点击button,然后再点击td1,还会弹出alert(),我怀疑是mousedown事件可以添加多个事件,请问怎样才能消除旧的mousedown事件?

解决方案 »

  1.   

    $(".selected").mousedown(function(e) {
      alert();
    }
    去掉这个方法 直接在这changeCSS()方法里面提示不就好了么!!
      

  2.   

    当我点击td1时会弹出alert(),点击button,然后再点击td1,还会弹出alert()这个现象是由于你的代码产生的!
    你点击了button,调用了changeCSS()函数。使<tr class="selected" onclick ="clickRow(this)">又变回了
    <tr class="first" onclick ="clickRow(this)">。
    然后你再点击td1,肯定还是会弹出alert()的。
    因为你始终调用了clickRow(this)函数。
      

  3.   

    $(".selected").unbind("mousedown");
    使用unbind() 试试.
      

  4.   

    clickRow()每次点击都触发这个函数,这个函数又添加css:selected.。当然是这样啦。