0

我有一个带有过滤器的 div,如下所示:(复选框的类名是=> dynamicFilterInput

[ ] all product
[ ] bmw
[ ] mercedes
[x] audi

当检查了更多复选框时,必须在另一个<div>这样的文本中出现文本:

选择的过滤器:

• 奥迪
取消选中所有

我不知道该怎么做,我试过这个:

$(".dynamicFilterInput").on( "click", function() {
    $( "#tabs_pieces_select" ).html( $("input:checked").val() + " is checked!" );
});

但它不起作用。我在控制台中收到此错误:

TypeError: $(...).on 不是函数

小提琴链接http://jsfiddle.net/WPnkh/

谢谢你的帮助。

4

4 回答 4

2

对于 1.4.2 版,使用“委托”/“绑定”。事实上,如果您没有动态添加复选框,则无需使用 on/delegate/bind。简单的点击就可以了。

$(".dynamicFilterInput").click(function() { 
 $("#tabs_pieces_select").html($(this).val() + " ::: is checked");
});

上面的代码用于简单地使用 click 函数。

于 2013-04-24T09:50:39.733 回答
1

试试这个:

$(".dynamicFilterInput").click(function () {
    if (this.checked) $("#tabs_pieces_select").html($(this).val() + " is checked!");
});

无论您选中还是取消选中复选框,都会调用此函数,因此我们需要确保当单击复选框并选中它时,只有文本出现在另一个 div 上。

于 2013-04-24T09:57:33.863 回答
1

你可以看看这个http://jsfiddle.net/5KdfB/

基本上你下面的代码会以某种方式工作,但有一些小问题。

$(".dynamicFilterInput").click(function() { $( "#tabs_pieces_select" ).html( $("input:checked").val() + " 被选中!" );

这只会发布第一个被选中的输入复选框,但是如果我们检查两个或更多复选框怎么办......您的代码只会显示第一个输入复选框。

$('.dynamicFilterInput').on('click', function() { var choice = $(this);

if (choice.is(":checked"))
{
    $('#choices' ).append( choice.val()  + " is checked!" );
}

});

希望这可以帮助

于 2013-04-24T10:02:14.043 回答
0

使用.live()

$(".dynamicFilterInput").live("click", function() {
    $("#tabs_pieces_select").html($("input:checked").val()
            + " is checked!");
});
于 2013-04-24T09:55:46.220 回答