ฉันเพิ่งเริ่มต้นด้วยการเขียนปลั๊กอิน jQuery ฉันเขียนปลั๊กอินเล็ก ๆ สามอัน แต่ฉันก็แค่คัดลอกบรรทัดไปยังปลั๊กอินทั้งหมดของฉันโดยไม่ทราบว่ามันแปลว่าอะไร มีคนบอกฉันเกี่ยวกับสิ่งเหล่านี้ได้อีกเล็กน้อย บางทีคำอธิบายอาจมีประโยชน์สักวันหนึ่งเมื่อเขียนกรอบงาน :)
สิ่งนี้ทำอะไร (ฉันรู้ว่ามันขยาย jQuery อย่างใด แต่มีอะไรอีกที่น่าสนใจที่จะรู้เกี่ยวกับเรื่องนี้)
(function($) {
})(jQuery);
อะไรคือความแตกต่างระหว่างสองวิธีในการเขียนปลั๊กอิน:
ประเภท 1:
(function($) {
$.fn.jPluginName = {
},
$.fn.jPluginName.defaults = {
}
})(jQuery);
ประเภทที่ 2:
(function($) {
$.jPluginName = {
}
})(jQuery);
ประเภท 3:
(function($){
//Attach this new method to jQuery
$.fn.extend({
var defaults = {
}
var options = $.extend(defaults, options);
//This is where you write your plugin's name
pluginname: function() {
//Iterate over the current set of matched elements
return this.each(function() {
//code to be inserted here
});
}
});
})(jQuery);
ฉันสามารถออกจากที่นี่และอาจหมายถึงสิ่งเดียวกัน ฉันสับสน. ในบางกรณีนี้ดูเหมือนจะไม่ได้รับการทำงานในปลั๊กอินที่ผมเขียนโดยใช้แบบที่ 1. เพื่อให้ห่างไกลพิมพ์ 3 ดูเหมือนว่าสง่างามที่สุดของผม แต่ผมอยากจะรู้เกี่ยวกับคนอื่น ๆ ได้เป็นอย่างดี
(function($) { })(jQuery)คุณกล่าวว่า: "ฉันรู้ว่ามันขยาย jQuery อย่างใด [... ]" เห็นได้ชัดว่าคุณไม่ทราบเนื่องจากคำสั่งของคุณเป็นเท็จ 100% โดยวิธีการที่อาจทำให้เข้าใจผิดสำหรับผู้อ่านในอนาคต ลองดูที่นี้: stackoverflow.com/a/32550649/1636522
(function($) { })(jQuery);ห่อตัวโค้ดเพื่อให้$อยู่jQueryในส่วนที่ปิดแม้ว่าจะ$หมายถึงสิ่งอื่นนอกเหนือจากปกติซึ่งเป็นผลมาจาก$.noConflict()ตัวอย่าง สิ่งนี้ทำให้มั่นใจได้ว่าปลั๊กอินของคุณใช้งานได้หรือไม่$ === jQuery:)