Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么只为接收收音机而调用change()?_Javascript_Jquery - Fatal编程技术网

Javascript 为什么只为接收收音机而调用change()?

Javascript 为什么只为接收收音机而调用change()?,javascript,jquery,Javascript,Jquery,我有以下处理程序设置 form.find("input[name=url_source]").change(function() { updateUrlSource(jQuery(this)) }); 我在想,它将被附加到所有单选按钮的名称。但实际上我在debugger中看到,只有一个调用发生,并且只有第一个条件满足以下条件: function updateUrlSource(source) { if( source.is(':checke

我有以下处理程序设置

form.find("input[name=url_source]").change(function() {
            updateUrlSource(jQuery(this))
            });
我在想,它将被附加到所有单选按钮的名称。但实际上我在debugger中看到,只有一个调用发生,并且只有第一个条件满足以下条件:

function updateUrlSource(source) {
   if( source.is(':checked') ) {
      // ...
   }
   else {
      // ...
   }
}
这是真的吗?为什么?

但实际上我在debugger中看到,只有一个调用发生,并且只有第一个条件满足以下条件:

function updateUrlSource(source) {
   if( source.is(':checked') ) {
      // ...
   }
   else {
      // ...
   }
}
正确,更改只对收到检查的输入触发,而不是对可能丢失检查的其他输入触发。细节隐藏在某处,但我相信这是关键点:

如果元素是可变的,那么:单击前激活步骤包括将元素的检查性设置为true。取消的激活步骤包括将元素的检查性设置为false。激活行为是触发一个简单事件,该事件在元素处冒泡命名为change

我的重点,非常感谢你的帮助

下面是一个例子:

但实际上我在debugger中看到,只有一个调用发生,并且只有第一个条件满足以下条件:

function updateUrlSource(source) {
   if( source.is(':checked') ) {
      // ...
   }
   else {
      // ...
   }
}
正确,更改只对收到检查的输入触发,而不是对可能丢失检查的其他输入触发。细节隐藏在某处,但我相信这是关键点:

如果元素是可变的,那么:单击前激活步骤包括将元素的检查性设置为true。取消的激活步骤包括将元素的检查性设置为false。激活行为是触发一个简单事件,该事件在元素处冒泡命名为change

我的重点,非常感谢你的帮助

下面是一个例子:


我猜更改事件只发生在启动更改的事件上,即单击的事件,因此,is“:checked”将始终为真。这些是单选按钮-它们必须具有相同的名称才能位于同一组中。@nathanhayfield一个单选组中的所有单选按钮必须具有相同的名称name@nathanhayfield给单选按钮起相同的名字是很正常的,这就是你如何识别布景的。我认为你们中没有人理解他的问题。他遇到的问题是,当你点击一个单选按钮时,它会导致两个变化:新按钮被选中,旧按钮被取消选中。他预计会触发两个事件,但只有一个会触发新按钮。我猜更改事件只会发生在启动更改的按钮上,即单击的按钮上,因此,is“:checked”将始终为真。这些是单选按钮-它们必须具有相同的名称才能位于同一组中。@nathanhayfield一个单选组中的所有单选按钮必须具有相同的名称name@nathanhayfield给单选按钮起相同的名字是很正常的,这就是你如何识别布景的。我认为你们中没有人理解他的问题。他遇到的问题是,当你点击一个单选按钮时,它会导致两个变化:新按钮被选中,旧按钮被取消选中。他预计会触发两个事件,但只有一个事件会触发新按钮。Somoene else得到了它。文档中的相关行是激活行为是触发一个简单事件,该事件在元素处冒泡命名为change。这是指正在激活的元素,即您单击的按钮。@Barmar:谢谢!我认为这是相关的话,然后决定我不确定是否真的这么说-为了说服自己,我不得不读了大约5遍这段文字。Somoene else明白了。文档中的相关行是激活行为是触发一个简单事件,在元素处冒泡命名为change。这是指正在激活的元素,即您单击的按钮。@Barmar:谢谢!我认为这是相关的话,然后决定我不确定是否真的这么说-我不得不把那一段读了大约5遍才能说服自己。