0
当我尝试在jQuery中实现委托功能时,它完美地工作时,我使用警报(),里面,但它不会触发时,我删除该警报。jQuery的代表或实时功能不能正常工作
$(document).delegate("#j_id2030916047_790d592c", "click", function(){
alert("");
$("#p4").hide();
$("#p5").hide();
$("#p3").hide();
$("#check2").change(function(){
if($("#check2").is(":checked")) {
$("#p2").hide();
}
else{
$("#p2").show();
}
});
$("input[name='sor']").change(function(){
if($("input[name='sor']:checked").val()=="collegeStudent"){
$("#p3").show();
$("#p4").hide();
$("#p5").hide();
}
else if($("input[name='sor']:checked").val()=="schoolStudent"){
$("#p4").show();
$("#p5").hide();
$("#p3").hide();
}
else if($("input[name='sor']:checked").val()=="employee"){
$("#p5").show();
$("#p3").hide();
$("#p4").hide();
}
else{
$("#p5").hide();
$("#p3").hide();
$("#p4").hide();
}
});
u能在第2行看到一个警报,所有的功能运作良好,如果警报存在..当我删除警报,实在不行..
在两个侧面说明:1.你确定你没有什么更好的节点委派到的不是“文件” ?肯定有一个包装div会使事情至少更有效一些? 2.虽然`.delegate()`没有被官方弃用,我建议切换到`.on()`,这将是功能相同的。这只是事件和选择器在语法方面相反。 – 2011-12-16 06:47:49
我使用的是primefaces,它有一个内置的jquery,它不支持on()函数。而不是使用委托,我也使用实时功能..但有同样的问题.. – Karthikeyan 2011-12-16 06:52:14
我不知道primefaces(或一般的JSF),但在我看来,一些问题源于那里。当然,你可以升级primefaces使用的jQuery? – 2011-12-16 15:17:48