jquery隐藏在.live中工作并且在.ready中失败

时间:2009-12-09 21:16:59

标签: jquery show-hide ready

以下两个函数(除了它们应该运行时相同)都在$(document).ready中。 .live版本按预期工作,选中选择器时隐藏2个div,并在取消选中时显示它们。 .ready版本什么都不做,但它应该在加载页面时隐藏指定的div。默认情况下会选中“allday”复选框(用于测试目的)。

.ready版本有什么问题?

$("input[name='allday']").ready(function(){ //OnLoad verify if allday is checked to disallow time entry
    if($(this).is(":checked")){ //There is a check
        $("#evst").hide(); //hide time entry
        $("#evet").hide();
    } else {
        $("#evst").show(); 
        $("#evet").show();
    }; 
}); 

$("input[name='allday']").live("click", function(){ //OnClick verify if allday is checked to disallow time entry
    if($(this).is(":checked")){ //There is a check
        $("#evst").slideUp(); //hide time entry
        $("#evet").slideUp();
    } else {
        $("#evst").slideDown(); 
        $("#evet").slideDown();
    }; 
});

1 个答案:

答案 0 :(得分:3)

使用.ready $(this)时不会引用正确的元素 - 将其更改为$("input[name='allday']")