我已經瀏覽了幾十個類似的問題,但沒有一個給出的答案有效。我通過$ .post調用一個HTML表單,並且在這個表單中有一個datepicker字段。我一直在儘可能多地閱讀.live(已棄用)和.on以嘗試使返回的表單生活在DOM中 - 但無法正常工作。
這是我打電話的形式現在:
$(".projectListHead").on('click', function() {
var thisId = '12';
$.post('/admin/ajax/projects/manage.php', { id: thisId }, function(data) {
$("#addEditArea").html(data)
});
});
我也試過:
$("body").on('click', ".projectListHead", function() {
var thisId = '12';
$.post('/admin/ajax/projects/manage.php', { id: thisId }, function(data) {
$("#addEditArea").html(data);
$(".datepicker").datepicker();
});
});
這也沒有工作。
這是形式datepicker
輸入字段在 '數據' 返回:
<input type="text" class="datepicker" id="datePickThis" />
和腳本選擇datepicker
字段:
$(".datepicker").datepicker();
**更新**
我嘗試了一個完美的建議,並在JSFiddle中工作,但不會工作:
$(".projectListHead").click(function() {
var thisId = '12';
$.post('/admin/ajax/projects/manage.php', { id: thisId }, function(data) {
$("#addEditArea")
.html(data)
.find('.datepicker')
.datepicker();
});
});
但這個例子作品,如果我只是覆蓋的.html值是這樣的:
$(".projectListHead").click(function() {
var thisId = '12';
$.post('/admin/ajax/projects/manage.php', { id: thisId }, function(data) {
$("#addEditArea")
.html('<input type="text" class="datepicker" id="datePickThis" />')
.find('.datepicker')
.datepicker();
});
});
而且,我知道這是很長,但這裏是我打電話回HTML的全部。也許問題就出在這裏:
<!-- PROJECT INFORMATION HEADER --------->
<div class="projManHeader">
<div class="clientPhoto" style="background-image: url(/admin/customers/images/4_thumb.jpg);"></div>
<div class="projectInfo">
<h1>William Richards</h1>
<h2>Family Portraits</h2>
<span style="font-size: 13px;">at Davis Arboretum</span>
</div>
<div class="projectDateInfo">
<h1>July 19th</h1>
<h2>6:30 PM</h2>
</div>
</div>
<!-- NAVIGATION ICON MENU ------>
<!-- PRELOAD IMAGE DIV ---->
<div style="display: none">
<img src="/images/icons/megaphone_over.gif" />
<img src="/images/icons/infocircle_over.gif" />
<img src="/images/icons/staffcircle_over.gif" />
<img src="/images/icons/paycircle_over.gif" />
</div>
<div class="projectIconsContainer">
<div id="comIcon" class="comIcon"></div>
<div class="sectionHeader">
<span style="font-weight: bold;">Contact</span><br />
<span style="font-size: 9px;">Email Sent<br />
on Aug 31, 2013
</span>
</div>
<div class="infoCircleIcon"></div>
<div class="sectionHeader">
<span style="font-weight: bold;">Project Info</span><br />
<span style="font-size: 9px;">Email Sent<br />
on Aug 31, 2013
</span>
</div>
<div class="staffCircleIcon"></div>
<div class="sectionHeader">
<span style="font-weight: bold;">Staff</span><br />
<span style="font-size: 9px;">Shooter:<br />
Leah Parker
</span>
</div>
<div class="payCircleIcon"></div>
<div class="sectionHeader">
<span style="font-weight: bold;">Payments</span><br />
<span style="font-size: 9px;">Cost:<br />
$160.00
</span>
</div>
</div>
<!-- END NAVIGATION ICON MENU -->
<!-- BEGIN AJAX FILL AREA ------>
<div id="ajaxFillArea"></div>
<!---- END AJAX FILL AREA ----->
<!-- BEGIN HIDDEN COMMUNICATION DIV ----->
<div id="hiddenComDiv" style="display:none;">
<div style="padding: 15px; display: inline-block; vertical-align: middle;">
<h2>Communication</h2>
</div>
<div style="display: inline-block; float: right; vertical-align: middle; margin-top: 13px; margin-right: 30px;">
<input type="button" id="newComButton" value="NEW COMMUNICATION" />
</div><br />
<div id="newComForm" style="display: none;">
<div style="padding: 15px; width: 600px; min-height: 300px; background-color: #f0f0f0; border: solid 1px #ccc;">
<div style="padding: 5px; width: 100px; display: inline-block; text-align: right;">Send Email:</div>
<div style="padding: 5px; display:inline-block;">
<input type="text" name="comEmailSubject" style="width: 430px;" placeholder="email subject here" />
</div><br />
<div style="padding: 5px; width: 100px; display: inline-block; text-align: right;">Message:</div>
<div style="padding: 5px; display:inline-block; vertical-align: top;">
<textarea name="comEmailMessage" style="width: 430px; height: 110px;" placeholder="email message here" ></textarea>
</div><br />
<div style="padding: 5px; width: 100px; display: inline-block; text-align: right;">Notes:</div>
<div style="padding: 5px; display:inline-block; vertical-align: top;">
<textarea name="comEmailNotes" style="width: 430px; height: 50px;" placeholder="followup/notes go here" ></textarea>
</div><br />
<div style="padding: 5px; width: 100px; display: inline-block; text-align: right;"></div>
<div style="padding: 5px; display:inline-block; vertical-align: top;">
<input type="text" class="datepicker" id="datePickThis" />
<input type="button" value="SEND" />
<input type="button" value="CANCEL" />
</div><br />
</div>
</div>
<!-- HIDDEN COMMUNICATION DIV JQUERY -------->
<script>
$(document).ready(function() {
// NEW COMMUNICATION FORM
$("#newComButton").click(function() {
$("#newComForm").slideDown(function() {
$("input[name=comEmailSubject]").focus();
});
});
// OPEN COMMUNICATION SECTION
$("#comIcon").click(function() {
var hiddenHtml = $("#hiddenComDiv").html();
$("#ajaxFillArea").html(hiddenHtml);
});
});
</script>
</div>
的形式在「數據」顯示恢復正常,但datepicker
根本行不通。 Datepicker
在沒有通過ajax調用時可以很好地工作。經過三個小時的挖掘,我希望有人能夠在這裏找到我。非常感謝!
'變種thisId = $(本).attr( '專案編號');'??? – Praveen
你可以請發佈的數據是在ajax後返回的。 –
我簡化了可能令人困惑的代碼,並添加了返回的表單的一部分。這是一個很大的形式,所以我不想公佈整個事情 - 如果有幫助,我可以。 – user2709974