jQuery单击操作不会触发onclick属性
我在获取单击所有搜索匹配复选框的函数时遇到问题。click事件似乎触发,但未选中任何复选框,也未调用myFunc() 当手动单击每个复选框时,它可以很好地工作,但是谁想用40多个复选框来完成这项工作呢?不是我的用户。jQuery单击操作不会触发onclick属性,jquery,javascript-events,event-handling,jquery-click-event,Jquery,Javascript Events,Event Handling,Jquery Click Event,我在获取单击所有搜索匹配复选框的函数时遇到问题。click事件似乎触发,但未选中任何复选框,也未调用myFunc() 当手动单击每个复选框时,它可以很好地工作,但是谁想用40多个复选框来完成这项工作呢?不是我的用户。 您可能想知道为什么我使用div onclick而不是直接在输入复选框上。这是因为我想给我的用户一个比一个小复选框更大的点击区域 我想为我的用户提供一个超链接,以选择多个与特定属性值匹配的复选框 我需要快速解决,因为我没时间了 HTML 编辑 当我从div更改为label时,我不必更
您可能想知道为什么我使用div onclick而不是直接在输入复选框上。这是因为我想给我的用户一个比一个小复选框更大的点击区域 我想为我的用户提供一个超链接,以选择多个与特定属性值匹配的复选框 我需要快速解决,因为我没时间了 HTML 编辑
当我从div更改为label时,我不必更正复选框状态。div或block元素肯定有问题。
我还从*div*s中删除了onclick,这意味着我可以直接针对复选框,并可以将它们的ID值更改为*actual_ID*
function clickAndCheckAllMatch(value) {
$('input[onclick*='+value+']').each(function(idx,e){
// e == this
$(this)[0].click();
if ($(this).attr('disabled')) {
//do nothing
} else {
if ($(this).attr('checked')) {
//do nothing
} else {
$(this)[0].click(); // only one checkbox per ID
}
}
});
}
function CheckAll() {
$('#container input[type=checkbox]:not(:checked)').each(function(idx,e){
$(this).click(); // notice the difference ?
});
}
this.parentNode.click
应该是this.parentNode.click()
此.parentNode.click
只是方法对象。调用它不会触发div的click事件。必须在单击之后添加括号,否则事件将不会触发。this.parentNode.click
应该是this.parentNode.click()
此.parentNode.click
只是方法对象。调用它不会触发div的click事件。必须在click
之后添加大括号,否则事件将不会触发。要跟进Pointy的评论,请使用以下命令:
$(document).ready(function(){
$('.theAnchorTagClass').click(function(){
//Code to check all boxes here or do whatever else you need...
});
});
只要用类似的内容替换您试图捕获单击事件的任何元素。要跟进Pointy的评论,请使用以下内容:
$(document).ready(function(){
$('.theAnchorTagClass').click(function(){
//Code to check all boxes here or do whatever else you need...
});
});
只需将类似的内容替换为您试图捕获单击事件的任何元素。与其尝试使用事件更改复选框的值,我将做两件事:
要给用户一个较大的单击区域,请使用标签
元素,而不是div
<代码>标签
元素直接受浏览器支持,您无需做任何事情即可使其正常工作。有两种方法可以使用它们:
<label><input type='checkbox'>Foo</label>
…或清除容器中的所有复选框(对那些“全部”或“无”链接有用):
与其尝试使用事件来更改复选框的值,我将做两件事:
标签
元素,而不是div
<代码>标签元素直接受浏览器支持,您无需做任何事情即可使其正常工作。有两种方法可以使用它们:
<label><input type='checkbox'>Foo</label>
…或清除容器中的所有复选框(对那些“全部”或“无”链接有用):
刚刚解决了这样一个问题,与我想要触发的onclick属性中类似于ASP.net的js代码呈现的checkbox事件处理程序有关。第一次尝试显式调用jqueryclick事件,但过了一段时间,我意识到这样做不会成功。因此,对我有效的解决方案是:
someOtherObject.click(eval($('input').attr('onclick')));
干杯。刚刚解决了这样一个问题,与我想要触发的onclick属性中类似ASP.net的js代码呈现的checkbox事件处理程序有关。第一次尝试显式调用jqueryclick事件,但过了一段时间,我意识到这样做不会成功。因此,对我有效的解决方案是:
someOtherObject.click(eval($('input').attr('onclick')));
干杯。您可能应该用jQuery绑定事件处理程序,因为您正在使用它。老式的“onclick”属性在2010年通常会被弃用。该声明的来源是什么?此外,我不能全局使用bind,因为每个div onclick都是唯一的,并且它是从非jquery部分生成的。您可能应该用jquery绑定事件处理程序,因为您无论如何都在使用它。老式的“onclick”属性在2010年通常会被弃用。该声明的来源是什么?此外,我不能全局使用bind,因为每个div onclick都是唯一的,并且它是从非jquery部分生成的。不查找选择器,而且在批量检查链接上没有类。不查找选择器,而且在批量检查链接上没有类。Woooooooo,我在stackoverflow中的第一篇帖子:)wooohoo,我在stackoverflow中的第一篇帖子:)
$('#container input[type=checkbox]').attr("checked", false); // or true, of course
someOtherObject.click(eval($('input').attr('onclick')));