jQuery" one" if else条件的方法

时间:2016-09-12 12:28:35

标签: javascript jquery

我正在努力实施jQuery" .one" if和else条件的方法。我只需要执行一次click函数,无论条件是真还是假。

请检查以下代码以简化我的问题。



$("span").one("click", function () {
	var ind = $("span").index($(this));
  
	if (ind == 0) {
  	alert ("clicked 1st element");
  }
  
  else {
    alert ("clicked 2nd element");
  }
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>1st click element</span><br>
<span>2nd click element</span>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

在您的情况下,您有两个span标记。因此,您为两者附加了一个事件。

该行:

$("span").one("click", function () {

与以下两行“等效”:

$("span:eq(0)").one("click", function () {
$("span:eq(1)").one("click", function () {

这就是因为你收到了两件事。

如果你想停止第二个事件并且只获得第一个事件,你可以考虑删除事件处理程序:

$("span").one("click", function () {
  
  // remove the event for the second span...
  $("span").off("click");
  
  
  var ind = $("span").index($(this));

  if (ind == 0) {
    alert ("clicked 1st element");
  }

  else {
    alert ("clicked 2nd element");
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>


<span>1st click element</span><br>
<span>2nd click element</span>

答案 1 :(得分:0)

$("span").one("click", function () {
	var ind = $("span").index($(this)); 
  
  var getRes = (ind == 0) ? alert ("clicked 1st element") : alert ("clicked 2nd element");
  
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span>1st click element</span><br>
<span>2nd click element</span>