ฉันควรทำยังไงดี? .hide()
เร็วกว่าการเขียนออกมา.css("display", "none")
แต่อะไรคือความแตกต่างและสิ่งที่ทั้งคู่ทำกับองค์ประกอบ HTML คืออะไร
ฉันควรทำยังไงดี? .hide()
เร็วกว่าการเขียนออกมา.css("display", "none")
แต่อะไรคือความแตกต่างและสิ่งที่ทั้งคู่ทำกับองค์ประกอบ HTML คืออะไร
คำตอบ:
จากหน้า jQuery เกี่ยวกับ. leather () :
"องค์ประกอบที่ตรงกันจะถูกซ่อนทันทีโดยไม่มีภาพเคลื่อนไหวซึ่งเทียบเท่ากับการเรียก. css ('display', 'none') ยกเว้นว่าค่าของคุณสมบัติการแสดงผลจะถูกบันทึกในแคชข้อมูลของ jQuery จะถูกเรียกคืนเป็นค่าเริ่มต้นหากองค์ประกอบมีค่าการแสดงผลแบบอินไลน์จะถูกซ่อนและแสดงผลองค์ประกอบนั้นจะถูกแสดงอีกครั้งแบบอินไลน์ "
ดังนั้นหากเป็นเรื่องสำคัญที่คุณจะสามารถเปลี่ยนกลับไปเป็นค่าก่อนหน้านี้display
ได้คุณควรใช้hide()
เพราะวิธีนี้จะจดจำสถานะก่อนหน้าได้ นอกเหนือจากนั้นไม่มีความแตกต่าง
ดูรหัส jQuery นี่คือสิ่งที่เกิดขึ้น:
hide: function( speed, easing, callback ) {
if ( speed || speed === 0 ) {
return this.animate( genFx("hide", 3), speed, easing, callback);
} else {
for ( var i = 0, j = this.length; i < j; i++ ) {
var display = jQuery.css( this[i], "display" );
if ( display !== "none" ) {
jQuery.data( this[i], "olddisplay", display );
}
}
// Set the display of the elements in a second loop
// to avoid the constant reflow
for ( i = 0; i < j; i++ ) {
this[i].style.display = "none";
}
return this;
}
},
พวกเขาเป็นสิ่งเดียวกัน .hide()
เรียกใช้ฟังก์ชัน jQuery และให้คุณเพิ่มฟังก์ชันเรียกกลับได้ ดังนั้นด้วย.hide()
คุณสามารถเพิ่มภาพเคลื่อนไหวเช่น
.css("display","none")
display:none
เปลี่ยนแปลงแอตทริบิวต์ขององค์ประกอบไป มันเหมือนกับว่าคุณทำสิ่งต่อไปนี้ใน JavaScript:
document.getElementById('elementId').style.display = 'none';
.hide()
ฟังก์ชั่นอย่างเห็นได้ชัดต้องใช้เวลามากขึ้นในการทำงานได้ในการตรวจสอบสำหรับฟังก์ชั่นการโทรกลับ, ความเร็ว, ฯลฯ ...
หากต้องการใช้ทั้งคู่เป็นคำตอบที่ดี มันไม่ใช่คำถามอย่างใดอย่างหนึ่งหรือ
ประโยชน์ของการใช้ทั้งสองเป็นที่CSS จะซ่อนองค์ประกอบทันทีเมื่อโหลดหน้าเว็บ jQuery. leather จะกะพริบองค์ประกอบสำหรับหนึ่งในสี่ของวินาทีจากนั้นซ่อนมัน
ในกรณีที่เราต้องการให้องค์ประกอบไม่แสดงเมื่อหน้าโหลดเราสามารถใช้ CSS และตั้งค่าการแสดงผล: ไม่มี & ใช้ jQuery .hide () หากเราวางแผนที่จะสลับองค์ประกอบเราสามารถใช้สลับ jQuery
ทั้งสองทำสิ่งเดียวกันบนเบราว์เซอร์ทั้งหมด AFAIK ตรวจสอบใน Chrome และ Firefox ทั้งสองผนวกdisplay:none
เข้ากับstyle
แอตทริบิวต์ขององค์ประกอบ
ดูว่าไม่มีความแตกต่างถ้าคุณใช้วิธีซ่อนพื้นฐาน แต่ jquery มีวิธีการซ่อนที่หลากหลายซึ่งให้ผลกระทบกับองค์ประกอบ อ้างอิงลิงค์ด้านล่างสำหรับคำอธิบายโดยละเอียด: เอฟเฟกต์สำหรับซ่อนใน Jquery