Javascript 这些jQuery自定义复选框是';t工作不正常
我试图在我的站点上使用这些自定义MacOSX样式的复选框(它是一个jQuery插件),但当我选中一个复选框时,它实际上不会触发Javascript 这些jQuery自定义复选框是';t工作不正常,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我试图在我的站点上使用这些自定义MacOSX样式的复选框(它是一个jQuery插件),但当我选中一个复选框时,它实际上不会触发$('#input')。is(':checked')直到您取消选中,然后它就会变得一团糟 每当你选中一个框,我都会在选中的行中添加一些CSS,为它添加一个黄色背景。但是,我和他们有麻烦。下图对此进行了解释: 我不明白它为什么会这样。这是我的checkIt()函数,它在检查行时添加黄色背景: function checkIt(id) { if ($('#check
$('#input')。is(':checked')代码>直到您取消选中,然后它就会变得一团糟
每当你选中一个框,我都会在选中的行中添加一些CSS,为它添加一个黄色背景。但是,我和他们有麻烦。下图对此进行了解释:
我不明白它为什么会这样。这是我的checkIt()
函数,它在检查行时添加黄色背景:
function checkIt(id) {
if ($('#checkbox_' + id).is(':checked')) {
$('#' + id).addClass("selected");
}
else {
$('#' + id).removeClass("selected");
}
}
当复选框被点击时,我称之为onclick。以下是PHP生成的一些标记示例:
<span class="inbox_check_holder">
<input type="checkbox" value="96874" onclick="checkIt(96874)" id="checkbox_96874" class="inbox_check" />
<div class="star_clicker" id="star_96874" onclick="addStar(96874)" title="Not starred"><span id="starimg_96874" class="not_starred"></span></div>
</span>
我认为这与这个自定义复选框jQuery插件在
上添加额外元素有关
如果你想看,这里有很多例子。(显然)我使用的是“Safari”皮肤。试试看
$(".inbox_check").live("change",function(e){
e.stopPropagation();
if($(this).is(":checked"))
$('#' + id).addClass("selected");
else
$('#' + id).removeClass("selected");
});
使用jQuery1.7,您可以使用
代表
示例
$("body").delegate(".inbox_check","change", function(e){
e.stopPropagation();
if($(this).is(":checked"))
$('#' + id).addClass("selected");
else
$('#' + id).removeClass("selected");
});
我可以把它放在我的checkIt()
函数中吗?很抱歉,我在回答中没有提到它,在使用上述代码时,您不需要复选框的onClick
事件。我的PHP动态创建HTML,我必须在函数中传递ID,这就是我使用onClick
的原因。我不太喜欢使用onclick
,但由于需要传递ID,因此我不得不这样做。如果您正在动态生成html,请使用live
,或委托,
或on
(jquery 1.7),更新答案,你也有类名,你不需要ID…但是我怎么突出显示所选行的背景呢?单击复选框时,应该更改消息行的背景。(您可以在上面我的屏幕截图中看到)并且,id
不再定义。我知道我可以使用.inbox\u check
进行onchange
,但更改所选邮件背景的行的ID是我需要传递ID的原因。
$("body").delegate(".inbox_check","change", function(e){
e.stopPropagation();
if($(this).is(":checked"))
$('#' + id).addClass("selected");
else
$('#' + id).removeClass("selected");
});