Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery委托或活动函数无法正常工作_Jquery - Fatal编程技术网

jquery委托或活动函数无法正常工作

jquery委托或活动函数无法正常工作,jquery,Jquery,当我尝试在jquery中实现委托函数时,当我在内部使用alert()时,委托函数可以很好地工作,但当我删除该警报时,委托函数不会被触发 $(document).delegate( "#j_id2030916047_790d592c", "click", function(){ alert(""); $("#p4").hide(); $("#p5").hide(); $("#p3").hide(); $("#check2").change(function(){

当我尝试在jquery中实现委托函数时,当我在内部使用alert()时,委托函数可以很好地工作,但当我删除该警报时,委托函数不会被触发

$(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();
  }
});

你可以在第2行看到警报,如果警报存在,所有功能都可以正常工作。。当我删除警报时,没有任何效果。

是否将此代码放入document.ready事件中

$(function () {  ....  });
可能是您的警报起了作用,因为此时文档已加载。

将您的函数放入$(document)。就绪,它就会工作

$(document).ready(function(){
$(document).delegate( "#j_id2030916047_790d592c", "click", function(){ 

    //alert("");
        $("#p4").hide();
     $("#p5").hide();
     $("#p3").hide();
. . . 

   });
});

我也怀疑这是个时间问题。Karthikeyan,在document ready事件中总结这一切,你应该很好。是的,我在document ready中也使用了相同的代码。。使其在页面加载期间工作。但是在primefaces中,
u可以看到一个名为ajax=false的属性,如果它被赋予了手段,那么document.ready本身就可以完美地工作,因为它不需要委托或活动函数。但是,当我保持ajax=true以在不加载页面的情况下验证字段时,我需要live函数来保持这些功能即使在单击命令按钮(#j_id2030916047_790d592c)后仍能正常工作。请尝试升级jquery的版本,然后尝试使用.on()。注意:1。您确定没有比“文档”更好的节点可以委托给它吗?肯定有一个包装器div可以使事情至少有一点效率?2.虽然
.delegate()
并没有被正式弃用,但我建议切换到功能相同的
.on()
。只是事件和选择器在语法上是相反的。我使用的是primefaces,它有一个内置的jquery,它不支持on()函数。我没有使用委托,而是使用了live函数。。但是有同样的问题……我不知道primefaces(或者一般的JSF),但在我看来,有些问题源自于此。当然你可以升级primefaces使用的jQuery?是的,我可以,但事实上问题不在于primefaces,我认为。。这是由于ajax。。。看看这个类似的问题。。虽然已经提供了清晰的解决方案,但我仍然无法遵循它,因为primefaces内置了ajax功能,没有办法改变它。。