誰かが私を迷惑な問題に正しい方向に向けることができることを願っています.
コードを挿入する前に要約します。「bookings.php」と呼ばれるjavascriptを含むhtmlファイルと、php「getBookings.php」を含むphpファイルの2つのファイルがあります。
bookings.php ファイルには、メニュー、テキストなどのすべての静的情報と、javascript + ajax 呼び出しが含まれています。
javascript/ajax を使用して getBookings ファイルを正常に呼び出していますが、問題はありません。
私の問題は、ロードされたファイル(getBookings.php)からのものです。切り替えが必要な html 要素がいくつかあります。そのためのjQueryは、bookings.phpファイルに含まれています..しかし、ajaxファイルが呼び出されたときにjqueryは適用されず、機能しません。
getBookings.php のすべてのコンテンツが #bookingSummary 要素に読み込まれます。
さて、私のコードは非常に長いので、すべての重要な部分を含めます..
// Usual Head Content, Meta, CSS, jQuery files
// Filters
<script language="javascript" type="text/javascript">
function bookings()
{
var fltr="";
if(document.frm.bkid.value != "")
fltr+='bkid='+document.frm.bkid.value+'&';
if(document.frm.customer.value != "")
fltr+='cid='+document.frm.customer.value+'&';
if(document.frm.site.selectedIndex != 0)
fltr+='sid='+document.frm.site.value+'&';
if(document.frm.status.selectedIndex != 0)
fltr+='st='+document.frm.status.value+'&';
if(document.frm.supp.selectedIndex != 0)
fltr+='sup='+document.frm.supp.value+'&';
if(document.frm.datefrm.value != "")
fltr+='dfrm='+encodeURI(document.frm.datefrm.value)+'&dto='+encodeURI(document.frm.dateto.value);
document.getElementById('bookingsummary').innerHTML="<br /><p align='center'> <img src='img/bigloading.gif'></p>";
url='get/getBookings.php?'+fltr;
getAjaxRec(url, viewbookings);
}
function viewbookings()
{
if (xmlHttp.readyState == 4 && (xmlHttp.status==200 || window.location.href.indexOf("http")==-1))
{
document.getElementById("bookingsummary").innerHTML = xmlHttp.responseText;
}
}
</script>
上記のコードは、すべて正常に動作する JavaScript です。以下は、上記の関数 - bookings() を呼び出す HTML コードです。
<!-- Several Form fields are here..-->
<input type="button" value="Apply Filter" class="searchBtn" onClick="bookings();">
<!-- Show booking results -->
<div id="bookingsummary"></div>
ここで、getBookings ファイル内に、クラス名が「hiddenDetails」の html 要素があり、これを切り替える必要があり、その Jquery は次のとおりです。
<script type="text/javascript">
$(document).ready(function() {
$('.bookingKeyDetails').click(function()
{
$(this).next('.hiddenDetails').slideToggle('medium");
});
});
</script>
上記のコードはすべて、jquery とは別に機能します。ここに getBookings.php ファイルのスニペットがあります。jquery を適用したい部分です。
<?php
// A while loop happens then..
$result="
<div class=\"bookingKeyInfo\">
<div class=\"lb1\"><input type=\"checkbox\" name=sup1x".$rw['id']." ></div>
<div class=\"lb2\"><a href=\"editbooking.php?id=".$rw['id']."\">".$rw['id']."</a> </div>
<div class=\"lb3\">".date('d/m/Y', strtotime($rw['pickupDate']))." <strong><font color=\"#FF0000\">".date('H:i', strtotime($rw['pickupTime']))."</font></strong></div>
<div class=\"clearLeft\"></div>
</div>
<div class=\"bookingKeyDetails\">
<div class=\"b-one\"><img style=\"margin-top:9px; padding-bottom: 5px;\" src=\"$base_dir/img/".strtolower($rw['status']).".png\"></div>
<div class=\"b-two\"><img id=\"isCustomerEmailed\" style=\"margin-top:9px; padding- bottom: 5px;\" src=\"$base_dir/img/unassigned.png\"></div>
<div class=\"b-three\"><img id=\"isSupplierEmailed\" style=\"margin-top:9px; padding- bottom: 5px;\" src=\"$base_dir/img/unassigned.png\"></div>
<div class=\"b-four\"><img id=\"isSupplierConfirmed\" style=\"margin-top:9px; padding- bottom: 5px;\" src=\"$base_dir/img/unassigned.png\"></div>
<div class=\"b-trip\">".substr($rw['DA'],0,6)."..<strong> to </strong> ".substr($rw['DB'],0,6)."..</div>
<div class=\"b-pax\">".$rw['pax']." Pax</div>
<div class=\"b-cost\">€$cost </div>
<div class=\"b-supplier\">".substr($sup,0,10)."..</div>
<div class=\"clearLeft\"></div>
<div class=\"hiddenDetails\">More Booking Information...</div>
</div>";
echo $result;
?>
私はこれが問題の非常に長い説明であることを知っています..だから私は自分のコードをそのまま与えようとしました..
jQueryが機能しない理由について、誰かが光を当てることができます..czは、getBookingsから呼び出される要素ではなく、個別に機能します..