我想在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中运行?
答案 0 :(得分: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中运行的一个DEMO:http://jsbin.com/ohuxe/
答案 1 :(得分:0)
您是否尝试过使用.bind(“点击”)并检查已检查的属性?
jQuery("input.top_class").bind(
"click",
function() { alert(jQuery(this).attr("checked")) }
)