0

我试图在 Safari 中“选中”复选框时添加一个类,并在未选中时将其删除 [在我正在使用的其他浏览器中。bind("focus", function() { 但在 Safari 中它不起作用?]

我目前正在使用

jQuery('.top_class input').bind("focus", function(){
jQuery(this).parents('.row').addClass("add_over"); 
            })
            .bind("blur", function() { 
jQuery(this).parents('.row').removeClass("add_over"); 
            });

这在 Safari 中不起作用 - 如何让代码在 Safari 中工作?

4

2 回答 2

0

如果您使用的是传统的,input[type=checkbox]那么我认为您正在寻找点击事件,如下所示:

jQuery('.top_class').click(function(){
    jQuery(this).closest('.row').toggleClass("add_over", jQuery(this).is(':checked') );
});

需要明确的是,如果这是您的复选框 HTML(或多或少),这将起作用:

<input type="checkbox" class="top_class" name="whatever" />

更新:Safari 可能会或可能不会接受focus复选框,具体取决于设置。由于没有办法对此进行测试,我会这样处理:

var $rows = jQuery('.row'); // Cache all rows
jQuery('.top_class').click(function(){
    var $row = jQuery(this).closest('.row');
    $rows.filter(".add_over").not($row).removeClass("add_over"); // Remove class from other rows
    $row.addClass('add_over');
});

那应该做你想做的事。你可以在这里看到它在 Safari 中工作的演示:http: //jsbin.com/ohuxe/

于 2009-12-09T03:33:17.337 回答
0

您是否尝试过使用 .bind("click") 并检查选中的属性?

jQuery("input.top_class").bind(
     "click", 
      function() { alert(jQuery(this).attr("checked")) }
     ) 
于 2009-12-09T03:33:48.050 回答