私が書いた jQuery エラー処理コードに問題があります。問題は、PHP が echo ステートメントを使用して jQuery コードをページに挿入するように jQuery コードを作成すると、コードが正常に機能することです。ただし、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 コードを挿入しないと、すべての努力が無視されるようです。
私を最も困惑させているのは、jQuery コードが PHP コードの後にストレート HTML として含まれている場合に完全に機能する .change メソッドの代わりに .click メソッドを使用する同様のページがあることです。私は困惑しているので、どんな入力も素晴らしいでしょう。
前もって感謝します。