เอาต์พุตจาวาสคริปต์จาก jquery ajax ไม่ทำงาน

ฉันกำลังแทรกข้อมูลบางอย่างลงในคอนเทนเนอร์ div ผ่าน ajax เมื่อโหลด HTML โดยตรงลงใน div มันก็ทำงานได้ดี แต่เมื่อฉันพยายามแทรกฟังก์ชันจาวาสคริปต์ในแท็กสคริปต์ มันจะทำให้เพจรีเฟรชและหยุดทำงานเมื่อเปิดใช้งาน ajax ฉันจะแทรกสคริปต์นี้ลงในคอนเทนเนอร์ div ผ่าน ajax ได้อย่างไร

<script type='text/javascript'>
showtext('By clicking this link you have activated the coupon. View the newly opened Kensie window to view this deal!','coupon-23147');
</script>

ฟังก์ชัน showtext มีอยู่ใน Functions.php ไฟล์นี้ไม่รวมอยู่ใน loadmore.php นั่นอาจทำให้เกิดปัญหาหรือไม่? นี่คือ:

function showtext(text,id) {
document.write("<div style='display:none'><div id='" + id + "'><table align='center' bgcolor='ffffff' border='0' width='450' height='180'><tr><td><font face='Arial, Helvetica, sans-serif' size='4'><center>" + text + "<br/><br/><IMG border='0' src='http://static.mydomain.com/images/logonew1.png' align='center'></center></td></tr></table></div></div>");
}

person PaperChase    schedule 09.11.2011    source แหล่งที่มา
comment
คุณช่วยอธิบายฟังก์ชั่นใน showtext หน่อยได้ไหม?   -  person dip    schedule 09.11.2011


คำตอบ (1)


คุณกำลังพยายามแสดงหน้าต่างประเภทป๊อปอัป/ไลท์บ็อกซ์บางประเภทหรือไม่ หากเป็นเช่นนั้น ฉันขอแนะนำว่าอย่าทำเช่นนี้ แต่ให้ทำดังนี้:

$.ajax({
    url: "YOUR URL",
    type: "POST",
    data: {var1: "1", var2: "2"},
    success: function(data) {
        showMessage(data);
    }
});

function showMessage(message) {
    ...
    ...
}

ที่กล่าวว่า showtext คืออะไร? คุณสามารถแสดงฟังก์ชันนั้นได้หรือไม่?

แก้ไข

ฉันเดาว่าสิ่งที่ฉันกำลังพูดคือทำไมคุณถึงส่งฟังก์ชันเช่นนี้และไม่ใช่แค่ส่งข้อความไปยังฟังก์ชัน... บางทีฉันอาจไปผิดเส้นทาง

person Sam    schedule 09.11.2011
comment
ใช่ ฉันได้แสดงข้อความโชว์ในโพสต์ต้นฉบับของฉันแล้ว ปัญหาคือฉันใช้การโทร ajax อยู่แล้วเนื่องจากนี่เป็นการดำเนินการโหลดแบบสันหลังยาว ในหน้าหมวดหมู่ของคูปอง ฉันไม่ได้โหลดทั้งหมดทันที ฉันใช้การโทร ajax เพื่อแทรกในขณะที่ผู้ใช้เลื่อน - person PaperChase; 09.11.2011
comment
@PaperChase - คุณต้องการทำอะไร? โหลดคูปองจำนวนมากผ่าน ajax แล้วผนวกเข้ากับ DOM หรือไม่ - person Sam; 09.11.2011
comment
ใช่แล้ว กำลังโหลด html ทั้งหมดของคูปองได้ดี อย่างไรก็ตาม ฟังก์ชันจาวาสคริปต์ที่อยู่ท้ายคูปองแต่ละใบไม่สามารถโหลดได้ ฟังก์ชันนี้จะสร้างหน้าต่างแจ้งเตือนไลท์บ็อกซ์เมื่อกดปุ่มคลิกที่นี่เพื่อเปิดใช้งาน เป็นไปได้ไหมที่จะทำ? เบราว์เซอร์จะรู้จักฟังก์ชันนี้หรือไม่นับตั้งแต่ถูกเพิ่มเข้ามาหลังจากโหลดเนื้อหาแล้ว แล้วอีวาล่ะ? ให้ตายเถอะ ฉันควรจะแบ่งหน้าแทนเหรอ? ฮ่าๆ - person PaperChase; 09.11.2011
comment
@PaperChase - ฉันเห็นสิ่งที่คุณพยายามทำ คุณไม่สามารถแทรกบล็อกสคริปต์ภายในบล็อกสคริปต์อื่นได้ อาจตั้งค่าแอตทริบิวต์บนองค์ประกอบรูทที่คุณกำลังแทรกแล้วอ่านเพื่อดูว่าคุณต้องการทำอะไร - person Sam; 09.11.2011
comment
ไม่ใช่สคริปต์ภายในสคริปต์ แต่เป็นสคริปต์ภายใน div มันจะต้องมีวิธีที่จะทำ ฟังก์เหล่านั้นที่ twitter และ facebook ดึงมันออกมาได้อย่างไร? ฉันสามารถทำ document.write ที่ไหนสักแห่งได้ไหม? - person PaperChase; 09.11.2011
comment
จริงๆแล้วฉันเป็นคนงี่เง่า ฉันสามารถเพิ่ม html ที่จะเขียนผ่าน document.write ไปยัง loadmore.php ได้ด้วยตนเอง อย่างไรก็ตาม ตอนนี้ปัญหาเดียวของฉันคือจะเพิ่มไฟล์ ZeroClipboard ลงในรหัสคูปองได้อย่างไร??? - person PaperChase; 09.11.2011