1

我有三个看起来像这样的复选框:

<input id="image_tagging" class="1" type="checkbox" value="1" checked="checked" name="data[image_tagging]">

现在我想创建一些ajax(工作正常)但是只有第一个复选框有事件:

这是我的 Jquery 函数:

    $('#image_tagging').click(function(){
    var value = 0;
    var websiteID = $(this).attr('class');
    if($(this).attr('checked')){
        value = 4;
    }else{
        value = -4;
    }
    alert('works! '+'id = '+websiteID+" value = "+value );
});

所以我的问题是。为什么这个点击功能只发生在我的一个复选框上?(如果重要的话,它只是第一个工作的复选框)

4

5 回答 5

3

ids must be unique on an html page. Instead use a class in the markup and a class selector in jQuery.

HTML

<input class="image_tagging 1" type="checkbox" value="1" checked="checked" name="data[image_tagging]">

Javascript

$('.image_tagging').click(function(){
    var value = 0;
    var websiteID = $(this).attr('class');
    if($(this).attr('checked')){
        value = 4;
    }else{
        value = -4;
    }
    alert('works! '+'id = '+websiteID+" value = "+value );
});
于 2013-08-27T08:53:22.360 回答
3

IDs have to be unique change the id to class instead

id="image_tagging"

to

class="image_tagging"

then

  $('.image_tagging').click(function(){
于 2013-08-27T08:53:37.977 回答
1

在 HTML 中

<input class="image_tagging" type="checkbox" value="1" checked="checked" name="data[image_tagging]">

在js中

 $('.image_tagging').click(function(){ 
// your code

});
于 2013-08-27T08:54:37.387 回答
0

ID在您的 DOM 结构中应该是唯一的。使用class而不是 ID 来处理此类事情。

<input id="image_tagging" class="img_tagging 1" type="checkbox" value="1" checked="checked" name="data[image_tagging]">

然后而不是#image_tagging 用于.image_tagging绑定点击事件

$('.image_tagging').click(function(){
于 2013-08-27T08:59:57.207 回答
0

id必须是唯一的,请改用 class 或试试这个...

$('input[type="checkbox"]').click(function(){
    var value = 0;
    var websiteID = $(this).attr('class');
    if($(this).attr('checked')){
        value = 4;
    }else{
        value = -4;
    }
    alert('works! '+'id = '+websiteID+" value = "+value );
});

无需更改HTML您已经编写的任何代码...

于 2013-08-27T08:58:16.170 回答