点击并更改处理程序在Chrome

时间:2015-10-15 13:44:11

标签: javascript jquery

我有两个函数用于连接到按钮的相同ID:

第一个功能:

$('input:radio[name=phoneSelect]').click(function() {
    console.log('First function now');
});

第二功能:

$('input:radio[name=phoneSelect]').change(function() {
    console.log('Second function now');                        
});

在safari上它完全正常,当我第一次点击时我只能在Chrome上看到第一个日志,当我点击按钮时,两个日志都会立即出现。

我需要在第一次点击时显示第一个日志,但是当您对第二个日志显示第二次或更多次点击时。

3 个答案:

答案 0 :(得分:1)

请查看下面的代码段。可能这会对你有所帮助。



$('div.selectButtons span').click(function() {
    if($(this).data("alreadyClicked") == null)
    {
      alert("First function now");
      $(this).data("alreadyClicked", "true")
    }
    else
    {
      alert("Second function now");
    }  
  
});

input[type="radio"]{
  display:none;
  }
span{
  width:30px;
  height:20px;
  border: solid 1px blue;
  
  }

.selectButtons{
  margin-bottom: 10px;
  }

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<div class="selectButtons">
  <input type="radio" name="phoneSelect" ></input>
  <span>Select</span>
</div>  
<div class="selectButtons">
  <input type="radio" name="phoneSelect" ></input>
  <span>Select</span>
</div> 
<div class="selectButtons">
  <input type="radio" name="phoneSelect" ></input>
  <span>Select</span>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

  

我需要在第一次点击时显示第一个日志,但是当您对第二个日志显示第二次或更多次点击时。

这不是那些功能所做的。当您单击任何单选按钮选项时更改单选按钮(选择其中一个选项)和using UnityEngine;using System.Collections;public class TexturesSwap : MonoBehaviour { public Texture[] textures; public int currentTexture; void Start () { } public void swapTexture() { currentTexture++; currentTexture %= textures.Length; GetComponent<Renderer>().material.mainTexture = textures[currentTexture]; }} 触发器的值时会触发change

如果您想计算单选按钮上的点击次数,只需使用一个包含点击次数的变量。

click

答案 2 :(得分:0)

怎么样......

//Register initial click event
$('input:radio[name=phoneSelect]').one('click', function() {
    console.log('First function now');

    //register on change handler
    $('input:radio[name=phoneSelect]').change(function() {
        console.log('Second function now');                        
    });

});