在单选按钮上使用jQuery live方法

时间:2014-03-14 11:46:01

标签: javascript jquery html css

我有两个代码。这个就像一个魅力 -

$("input:radio").on('change',showRatingSection);

但是这个抛出“对象没有方法'直播'”错误 -

$("input:radio").live('change',showRatingSection);

任何想法为什么?

如果我认为您无法在radios上调用实时方法,那么我将如何绑定radios上将要添加到我的DOM的事件?我知道我可以在添加后尽快绑定,但如果它不能与live()一起使用,我正在寻找radios的替代方案。

3 个答案:

答案 0 :(得分:2)

使用最好的方法!

$("body").delegate('input:radio','change',function(){
    //do code here
});

这项工作与AJAX,没有ajax。我和#34; live"有类似的问题。功能也是如此,但由于我在任何地方使用它,我都没有问题。

答案 1 :(得分:2)

您可以尝试这个,它被称为Event Delegation:在DOM中动态生成的元素,您可以使用以下语法触发事件

$(document.body).on('click', "input:radio", showRatingSection);
.live()

的1.7版本以来,

jQuery已被弃用

document.body指的是DOM中最接近的父元素

答案 2 :(得分:1)

委派活动:

$(document).on('change', "input:radio", showRatingSection);

"对象没有方法'直播'"
是的,因为在最新的jQuery版本中,live已被删除。

我正在寻找live()的替代方案
是的,根据本回答和其他人的建议你有一个警告,使用.on()它有一个特殊的语法。

$(document).on('event', "selector", function);

注意:

委派给$(document)是非常昂贵的(就性能而言)所以你应该总是尝试委托给最近的静态父(可以在doc准备好了)

如果您委托给最近的静态父项,那么您应该将该事件放在doc ready块中,但如果您委托给$(document),则无需将其放入doc准备好了。