JQuery click事件只能在a中运行一次

时间:2017-02-15 16:01:47

标签: javascript jquery

如何才能让这次点击在我的HTML中运行一次?

现在它正在从表中的所有tr工作,在此之后应该只工作一次。

$("#example tbody tr").on("click", function() {
   $(this).addClass('row-selected');            
})

6 个答案:

答案 0 :(得分:4)

首次点击后,您需要取消绑定点击事件:



var tr = $("tr");
tr.one("click", function() {              // this means that you can only click each row once
  $(this).toggleClass('row-selected');
  tr.off('click');                        // this will unbind the click event from the rest of the rows
})

.row-selected td {
  font-weight: bold;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tr>
    <td>one</td>
  </tr>
  <tr>
    <td>one</td>
  </tr>
  <tr>
    <td>one</td>
  </tr>
  <tr>
    <td>one</td>
  </tr>
  <tr>
    <td>one</td>
  </tr>
  <tr>
    <td>one</td>
  </tr>
</table>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

尝试使用one代替on。有关one http://api.jquery.com/one/

的更多信息
("#example tbody tr").one("click", function() {
   $(this).addClass('row-selected');            
})

答案 2 :(得分:0)

试试这个。

$("#example tbody tr").one("click", function() {
   $(this).addClass('row-selected');            
})

答案 3 :(得分:0)

在点击事件回调中,您可以删除该事件。只需将事件作为参数传递。

$("#example tbody tr").on("click", function(event) {
   $(this).addClass('row-selected'); 
   event.target.onclick = null;
})

答案 4 :(得分:0)

QObject::mousePressEvent()

答案 5 :(得分:0)

尝试更改开启(“点击”为一个(“点击”

尝试以下

$("#example tbody tr").one("click", function() {
$(this).addClass('row-selected');            
})code here

或者您可以尝试查看此页面bind unbind

以下是他们在我链接的网站上使用的示例。

$('#my-selector').bind('click', function() {
   $(this).unbind('click');
   alert('Clicked and unbound!');
});