Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.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 在对象集合上使用触发器_Javascript_Jquery - Fatal编程技术网

Javascript 在对象集合上使用触发器

Javascript 在对象集合上使用触发器,javascript,jquery,Javascript,Jquery,对jquery来说有些陌生,但我非常喜欢它,在过去的几周里,我一直在为概念验证而努力进行开发 我试图在多个对象上实现触发器,但无论我做什么,它都只在集合中的第一个对象上触发。我知道triggerHandler有这个限制,但trigger现在应该有了。我以为这对扳机有用!请帮忙 这就是我目前拥有的: 一组具有相同类别的输入框(例如 ) 然后是一个按钮,我想在所有这些按钮上触发单击,并在每个按钮上运行单击处理程序 <input type="button" value="select all"

对jquery来说有些陌生,但我非常喜欢它,在过去的几周里,我一直在为概念验证而努力进行开发

我试图在多个对象上实现触发器,但无论我做什么,它都只在集合中的第一个对象上触发。我知道triggerHandler有这个限制,但trigger现在应该有了。我以为这对扳机有用!请帮忙

这就是我目前拥有的:

一组具有相同类别的输入框(例如

)

然后是一个按钮,我想在所有这些按钮上触发单击,并在每个按钮上运行单击处理程序

<input type="button" value="select all" value="click me" id="button1" />
似乎无论我做什么,只有第一个对象触发了绑定的单击事件

如有任何建议,将不胜感激

更新:出于沮丧,我编写了相同的代码,除了没有使用每个循环之外,我分别手动触发了每个循环,并且以相同的方式失败——它只触发第一个对象上的事件并停止

更新:以下是绑定到输入的单击事件的示例:

$j('#checkx').click(function(){ /* do something */ }); //end click

更新:oops复制/粘贴错误,已修复。但这并不影响这个问题

您的代码缺少一个

另外,您不需要
。每个

$j('#button1').click(function(){
  $j('.allchecks:not(:checked)').trigger('click');
}); // end click

编辑您在多个元素上使用了相同的id,这是不允许的。它不起作用,现在您已经知道了原因,以后再也不会这样做了;-)


您不需要触发单击事件来选中复选框,只需使用
prop
方法将
checked
设置为true即可。看


事件处理程序可能正在抛出错误,从而阻止其他处理程序的执行。请创建一个演示。我不明白任何人如何编写javascript代码而不使用错误控制台或调试控制台来查看脚本错误。马上学习如何去做。它将向您显示此错误,并将在将来为您节省数小时的时间。没有错误。我在firefox中使用firebug,让它在那里工作,然后检查其他浏览器。我不明白你怎么…没关系,不值得。是的,好吧,我对语法错误不好…复制/粘贴编辑错误在这里。我修好了。事实证明,它在JSFIDLE中确实有效,但在这里却不行!我不知道为什么,因为我没有收到任何错误。我更新了,使它更像我正在做的事情,以向自己证明它。不使用相同的ID——请参阅前面更新的小提琴。X就是一个例子。但好消息是我找到了原因。当你点击一个复选框时,“checked”首先出现,然后是回调。但是,当您触发click时,事件回调首先发生,然后是“checked”。我要做的就是扣动扳机:设定目标,让它开火,再设定一次!toggle()不是一个很好的例子,因为我在技术上没有做切换,所以你不能很容易地检测到这一点。触发器调用的代码
$j('.histtoggles').prop('checked',true.).trigger('click').prop('checked',true)很好,但是您也可以绑定
change
,然后执行
$j('.histtoggles').prop('checked',true')。trigger('change')
$j('#checkx').click(function(){ /* do something */ }); //end click
if(!$j(this).is(':checked'){   
$j('#button1').click(function(){
  $j('.allchecks:not(:checked)').trigger('click');
}); // end click
$j('.allchecks').click(function(){ /* do something */ });
$('#button1').click(function(){
    $('.allchecks').prop('checked', true);
});