好吧,伙计们,我编写的一些 jQuery 错误处理代码有问题。问题是,如果我编写 jQuery 代码以便 PHP 使用 echo 语句将其注入到页面中,那么代码就可以正常工作。但是,如果我只是在 php 语句结束后输入 jQuery 代码并让它被包含,就好像它只是普通的 html 一样,它就无法工作。我怀疑当 jQuery 实际返回浏览器时,DOM 中不可用的元素存在某种问题,但我不确定这是怎么回事。
至于这里的代码是示例。
如果包含在包含文件中 php 的结尾 ?> 标记之后,这就是代码的编写方式。
<script>
$("#adminuserlist select[name=userlist]").change(function(){
if($("#adminuserlist select[name=userlist]").val() == \'\'){
$("#noadminuser").css("visibility", "visible");
$("#noadminuser").dialog({
modal:true,
show: {
effect: "fade",
duration: 300
},
hide: {
effect: "fade",
duration: 300
}
});
}
else{
$("#adminuserlist").submit();
}
}
);
</script>
这就是我用 PHP 注入代码时的样子。如果我这样做,它会起作用,但在我看来,这有点像组织上的噩梦。
<?php echo '<script>';
echo '$("#adminuserlist select[name=userlist]").change(function(){ if($("#adminuserlist select[name=userlist]").val() == \'\'){ $("#noadminuser").css("visibility", "visible"); $("#noadminuser").dialog({ modal:true, show: { effect: "fade", duration: 300 }, hide: { effect: "fade", duration: 300 } }); } else{ $("#adminuserlist").submit(); }});';
echo '</script>'; ?>
当我从这两种配置中检查浏览器中的结果源时,它们似乎在间距之外是相同的。如果这是加载 jQuery 时 DOM 中不存在的元素的某种问题,我很想听听修复它的方法。我已经尝试过使用 on 的委托绑定方法。我尝试将代码封装在 $(document).ready 语句中,以及许多其他方法,但是当我不使用 PHP 注入 jQuery 代码时,它似乎忽略了我的所有努力。
最让我困惑的是我有一个类似的页面,它使用 a 和 .click 方法而不是 a 和 .change 方法,当 jQuery 代码作为直接 HTML 包含在 PHP 代码之后时,它可以完美地工作。我很难过,所以任何输入都会很棒。
提前致谢。