Извикванията на AJAX изглежда изключват приставката ми за jQuery. Опитах го на три плъгини, затова предположим, че това е грешка с моя код, а не с приставката.
За да опростя, имам:
<div id="Static">Not affected by AJAX</div>
<div id="Dynamic">Hello</div>
<button id="change">Change</button>
<button id="print">Print</button>
При натискането на печат използвам приставката printArea:
<script src="../jquery.PrintArea.js"></script>
<script>
$(document).on("click", "#print", function(e) {
e.preventDefault;
$("#Static").printArea();
})
Имам го да отпечатва статичното съдържание, за да се изключи проблемът, че приставката не работи върху промененото съдържание. Когато натисна "Промяна", динамичното съдържание се променя:
<script type="text/javascript">
$(document).on("click", "#change", function(){
var data = "1";
$.ajax({url:"X.php", type:"POST", data:{"mydata": data}, success:function(result){
$("#Dynamic").html(result);
}});
})
</script>
Аз не копирам X.php кода, тъй като това работи добре и аз не мисля, че това е проблема. Да предположим, че се променя "Здравей" на "Довиждане".
Така че по същество, ако натисна "Print" първо, ще се отпечата "Не се влияе от AJAX". Ако натиснем "Промяна", "Здравейте" се заменя с "Сбогом". Ако натисна "Печат" след "Промяна", нищо не се случва.
Как мога да гарантирам, че приставката ми JQuery работи след обаждането в AJAX?
Благодаря!
Отговори:
0 за отговор № 1Добавяне
$.getScript("jquery.PrintArea.js")
в успешната функция работи ... С бъгове, но мисля, че това е поради по-сложната част от моя код, който съм пропуснал тук.