JQuery:在ajax生成的事件上注册事件

时间:2012-10-05 10:29:04

标签: javascript ajax jquery

以下代码是通过ajax:

生成的
<div class="momento-rating-input">
    <div>Rate this post</div>
    <div>
        <input type="radio" name="rateit" value="3" style="margin: 0 0.5ex 3px;" class="ratems" />Good
        <input type="radio" name="rateit" value="2" style="margin: 0 0.5ex 3px;" class="ratems" />Average
        <input type="radio" name="rateit" value="1" style="margin: 0 0.5ex 3px;" class="ratems" />Bad
    </div>
</div>

现在在Javascript / JQuery中,我需要清除选定的无线电。我尝试使用代码。

$('input[type="radio"]').each(function(){
    if($(this).hasClass('ratems')){
        $(this).checked = false;
    }
});

以上代码无效。我知道我们应该使用JQuery liveon函数在AJAX生成的元素上注册事件。

但是,我不想注册任何事件,而是要清除其他事件中的单选按钮,这样就没有任何问题。

如何清除这些单选按钮?

小上下文,如果需要:此代码在灯箱上实现,按左/右键可更改图像。对于新图像,应清除rating单选按钮。

3 个答案:

答案 0 :(得分:1)

只需从元素中删除checked属性:

$('input[type="radio"].ratems').removeAttr("checked");

答案 1 :(得分:1)

您应尝试将$(this).checked = false;替换为$(this).removeAttr('checked');

答案 2 :(得分:1)

您可以尝试此操作取消选中类名为ratems

的单选按钮
$('input[type="radio"].ratems').prop('checked', false);

而不是使用$('input[type="radio"]').each(..)