freelance, web developer, web designer, hosting, domain name
ผมทำฟอร์ม แล้วใช้ Jquery เป็นตัว Validate ฟอร์มหน่ะคับ แล้วหน้าหลักผมใช้ AJAX ดึงฟอร์มนั้นขึ้นมาแสดง แต่ มันติดปัญหาอยู่ว่า ทำไม Jquery ที่ใช้ Validate ฟอร์มนั้นมันไม่ทำงานคับ ฟอร์มมันขึ้นมาในหน้าหลักอยู่ แต่ Jquery มันไม่ทำงานคับ รบกวนด้วยนะคับ
$(document).ready(function() { // do some thing });
ขอบคุณค๊าฟ จะลองดูคับ
ละเอียดมากเลยครับ เดียวผมจะลองทำดูครับ ขอบคุณมากๆครับ
Javascript ในหน้าที่ถูก Ajax เรียก ไม่สามารถทำงานได้ครับ ดังนั้น ให้เตรียม Javascript ที่จะต้องใช้งานไว้ก่อนครับ อ่านบทความเกี่ยวกับ Ajax บนเว็๋บประกอบครับ
หาไม่เจอเหมือนกัน เขียนให้ใหม่แล้ว
แต่ใช้ได้เฉพาะ IE8 ครับ พอมาลอง กับ IE7 และ Firefox ใช้ไม่ได้อ่ะครับ
function ที่พูดถึงคือ autotab ครับ ไปโหลดมาจาก
http://www.lousyllama.com/sandbox/jquery-autotab
ครับ ลองแล้วยังไงก็ไม่ได้อ่ะครับ
แต่ function อื่นๆทำตามบทความได้ทำได้น่ะ งงมากมาย กับ หลายๆ Bowser
ทำไม่ออก สงสัยได้ทำแบบเดิมแน่ๆ
เหอๆ ยังงัยก็ขอบคุณนะคับ จะลองหาวิธีดู
เท่าที่รู้ Frame Work อื่นๆ ประสบปัญหานี้ทั้งนั้น บางครั้งเราอาจจะต้องเขียนโค้ดใหม่เพื่อให้ มันรองรับกับวิธีที่จะใช้ครับ ซึ่งต้องดูเป็นกรณีไป ฟังก์ชั่นที่เขียนไว้โดยวิธีปกติ อาจไม่ทำงานเมื่อใช้ Ajax ครับ และนอกจากนี้ เรื่อง cross browser ก็เป็นอีกปัญหา ที่ควรคำนึงถึงครับ
ผมยกตัวอย่างจากบทความ ใน event onclick เราก็ยังไม่สามารถใช้ Javascript เพื่อทำงานได้อยู่ดี จำต้องเปลี่ยนมาใช้ event ระดับ 3 แทนครับ
ทบทวนปัญหากันนิดนึง เอโค้ดเขามาใช้ รู้หรือเปล่าว่าคำสั่งที่เขาเรียกใช้ เขามีไว้เพื่ออะไร
$(document).ready(function() {
// do some thing
});
เขาใจหรือไม่ว่าคำสั่งด้านบน คือ อะไร และ มีไว้เพื่ออะไร ลองกลับไปศึกษา jquery ดู
คำสั่งนี้เทียบเท่ากับ event onload ของ document ครับ ดังนั้นเมือจะเรียกใช้ฟังก์ชั่นภายในคำสั่งนี้ ฟังก์ชั่นนั้นๆ จะทำงานเมื่อ document โหลดเรียบร้อยแล้ว แต่....
เมื่อเราใช้งาน Ajax ในการโหลด document มันไม่ไ้ด้โหลดด้วย ดังนั้น event นี้มันก็ไม่เกิด ทำยังไงมันก็ไม่เกิด....
จุดประสงค์ในการใช้งานคำสั่งนี้ ก็เพื่อรอให้ document โหลดเรียบร้อยแล้ว แต่เมื่อ document โหลดเรียบร้อยแล้ว เราก็ไม่มีความจำเป็นต้องใช้มัน
ในการแก้ปัญหาอาจททดลองเอาฟังก์ชั่น ready ออกไปเลยก็ได้ครับ แล้วเอาคำสั่ง เรียกใช้ autotab ไปไว้ที่ javascript หลักแทนครับ
หรือถ้ามันยังไม่ทำงาน ก็ให้หน่วงเวลาสักเล็กน้อย เพื่อให้ element ต่างๆ สร้างเสร็จแล้วถึงค่อยเรียกใช้ก็ได้
windows.setTimeout(function{
// do some thing
}, 10);
ถ้า 10 ยังไม่พอ ก็ลองเพิ่มให้นานขึ้นอีก ก็ได้ครับ
ทุกปัญหามีทางออกครับ ถ้ารู้ว่า ต้นเหตุของปัญหาเกิดจากอะไร ซึ่งเราจะรู้ได้ ถ้าเราศึกษาสิ่งที่เราทำให้ถ่องแท้ครับ....ขอให้แก้ไขได้นะ
ขอบคุณค๊าฟ
จะลองดูคับ
ละเอียดมากเลยครับ เดียวผมจะลองทำดูครับ ขอบคุณมากๆครับ
$("a#demo").click(function(){
alert("Mouse Click");
});
$("a#demo2").mouseover(function(){
alert("Mouse Over");
});
$("a#demo3").mouseout(function(){
alert("Mouse Out");
});
ต้องให้อยู่ภายใต้
$(document).ready(function(){
// เริ่มต้นโค้ดของคุณในส่วนนี้
});
หรือ
$(function(){
// เริ่มต้นโค้ดของคุณในส่วนนี้
});
หรือ
jQuery(function($) {
// เริ่มต้นโค้ดของคุณในส่วนนี้
});