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遍才能说服自己。