Latest web development tutorials
×

jQuery UI หลักสูตร

jQuery UI หลักสูตร jQuery UI แนะนำโดยย่อ jQuery UI ดาวน์โหลด jQuery UI ใช้ jQuery UI ปรับแต่ง jQuery UI โรงงาน

jQuery UI กระทู้

jQuery UI กระทู้ jQuery UI ThemeRoller jQuery UI CSS กรอบ API jQuery UI รูปแบบการออกแบบ

jQuery UI ห้องสมุดองค์ประกอบ

jQuery UI ห้องสมุดองค์ประกอบ jQuery UI Widget ขยาย jQuery UI Widget วิธีการภาวนา jQuery UI ใช้ห้องสมุดเครื่องมือทำไม jQuery UI วิธีการใช้ห้องสมุดเครื่องมือ

jQuery UI คู่มืออ้างอิง

jQuery UI API ไฟล์ API หมวดหมู่ - ผลดีเป็นพิเศษ API หมวดหมู่ - ผลกระทบหลัก API หมวดหมู่ - อีกวิธีหนึ่งคือ API หมวดหมู่ - วิธีการบรรทุกเกินพิกัด API หมวดหมู่ - ทาง API หมวดหมู่ - ผู้เลือก API หมวดหมู่ - กระทู้ API หมวดหมู่ - UI แกน API หมวดหมู่ - ประโยชน์ API หมวดหมู่ - วิดเจ็ต

jQuery UI ตัวอย่าง

jQuery UI ตัวอย่าง ลาก สถานที่ ขูดหินปูน เลือก ลำดับ แผงพับ การทำให้สมบูรณ์อัตโนมัติ ปุ่มกด เลือกวันที่ โต้ตอบ เมนู แถบความคืบหน้า Slider Rotator แถบ กล่องเคล็ดลับ ผลดีเป็นพิเศษ แสดงผล ปิดบัง การสลับ .addClass() .removeClass() .toggleClass() .switchClass() นิเมชั่นสี ตั้งอยู่ ห้องสมุดองค์ประกอบ

เครื่องมือ jQuery UI การขยายตัวทางห้องสมุดเครื่องมือ

jQuery UI Widget ห้องสมุด (โรงงาน Widget) ทำให้ง่ายต่อการสร้างเครื่องมือ, เครื่องมือเหล่านั้นขยายการทำงานของเครื่องมือที่มีอยู่ วิธีนี้คุณสามารถสร้างบนพื้นฐานของเครื่องมือที่มีประสิทธิภาพที่มีอยู่คุณยังสามารถปรับฟังก์ชั่นที่มีอยู่วิดเจ็ต

หมายเหตุ: ก่อนเรียนบทนี้คุณจะต้องเข้าใจสิ่งที่ห้องสมุดเครื่องมือ (โรงงาน Widget) และวิธีการทำงาน ถ้าคุณไม่คุ้นเคยกับความรู้นี้ดังนั้นกรุณาตรวจสอบ วิธีการใช้ชิ้นส่วนห้องสมุด (โรงงาน Widget) ส่วน

สร้างส่วนขยายวิดเจ็ต

สร้างเครื่องมือโดยห้องสมุดวิดเจ็ต (Widget โรงงาน) ผ่านไป $.widget() จะถูกส่งชื่อของเครื่องมือและวัตถุต้นแบบที่จะเสร็จสมบูรณ์ ตัวอย่างต่อไปนี้คือการสร้าง "superDialog" วิดเจ็ตใน "กำหนดเอง" namespace

$.widget( "custom.superDialog", {} );

เพื่อรองรับการขยายตัวที่ $.widget() เป็นตัวเลือกได้รับการยอมรับในฐานะสมาชิกที่จะใช้ตัวสร้างเครื่องมือที่ผู้ปกครอง เมื่อระบุสมาชิกผู้ปกครองเมื่อมันจะถูกส่งเป็นอาร์กิวเมนต์ที่สองชื่อวิดเจ็ตที่ด้านหลังในด้านหน้าของวัตถุ Widget ต้นแบบ

เช่นตัวอย่างข้างต้นต่อไปนี้ควรสร้าง "superDialog" วิดเจ็ตใน "กำหนดเอง" namespace แต่การโอนนี้คือ โต้ตอบ jQuery UI ของ (โต้ตอบ) วิดเจ็ต คอนสตรัค ( $.ui.dialog ) หมายถึงเครื่องมือที่ superDialog ควรใช้โต้ตอบ jQuery UI ของ (โต้ตอบ) วิดเจ็ตในฐานะสมาชิกผู้ปกครอง

$.widget( "custom.superDialog", $.ui.dialog, {} );

นี่ superDialog สองและเครื่องมือโต้ตอบเทียบเท่าหลักเพียงชื่อที่แตกต่างกันและ namespace เพียง เพื่อให้เครื่องมือที่มีคุณสมบัติมากขึ้นใหม่ของเราเราสามารถเพิ่มวิธีการบางอย่างกับวัตถุต้นแบบของมัน

วัตถุต้นแบบ Widget ถูกส่งไปยัง $.widget() อาร์กิวเมนต์สุดท้าย เพื่อให้ห่างไกลตัวอย่างของเราใช้วัตถุ null ตอนนี้ขอเพิ่มวิธีการไปยังวัตถุที่:

$.widget( "custom.superDialog", $.ui.dialog, {
    red: function() {
        this.element.css( "color", "red" );
    }
});
 
// Create a new <div>, convert it into a superDialog, and call the red() method.
$( "<div>I am red</div>" )
    .superDialog()
    .superDialog( "red" );

ตอนนี้ superDialog มี red() วิธีการที่จะเปลี่ยนสีแดงข้อความ โปรดทราบว่าห้องสมุดสมาชิก (โรงงาน Widget) เป็นวิธีการตั้งค่าโดยอัตโนมัติ this เป็นวัตถุเช่นวิดเจ็ต สำหรับรายชื่อของคุณสมบัติและวิธีการที่ใช้ได้บนอินสแตนซ์แวะไปที่ ห้องสมุดสมาชิก (โรงงาน Widget) เอกสาร API

ขยายวิธีการที่มีอยู่

บางครั้งคุณจำเป็นต้องปรับเปลี่ยนพฤติกรรมขององค์ประกอบที่มีอยู่หรือเพิ่มวิธีการ คุณสามารถระบุชื่อของชื่อวิธีของวิธีการบนวัตถุต้นแบบจะต้องโหลด ตัวอย่างต่อไปนี้จะแทนที่โต้ตอบ (โต้ตอบ) ของ open() วิธีการ เนื่องจากกล่องโต้ตอบจะเปิดใช้งานโดยค่าเริ่มต้นเมื่อคุณเรียกใช้รหัสนี้ "open" มันจะถูกบันทึกไว้

$.widget( "custom.superDialog", $.ui.dialog, {
    open: function() {
        console.log( "open" );
    }
});
 
// Create a new <div>, and convert it into a superDialog.
$( "<div>" ).superDialog();

เมื่อคุณเรียกใช้รหัสนี้มีปัญหา เนื่องจากเรามากเกินไป open() พฤติกรรมเริ่มต้นดังนั้นการโต้ตอบ (โต้ตอบ) จะไม่แสดงบนหน้าจอ

เมื่อเราใช้วัตถุต้นแบบเราเป็นจริงคาบเกี่ยววิธีการเดิมที่ใช้วิธีการใหม่ในห่วงโซ่ต้นแบบ

เพื่อให้ผู้ปกครองวิธีการชุมนุมที่มีอยู่ในห้องสมุดสมาชิก (โรงงาน Widget) ให้สองวิธี - _super() และ _superApply()

ใช้ _super() และ _superApply() ในการเข้าถึงสมาชิกผู้ปกครอง

_super() และ _superApply() เรียกร้องในลักษณะเดียวกันเป็นส่วนประกอบแม่ พิจารณาตัวอย่างต่อไปนี้ เหมือนเช่นที่ผ่านมาซึ่งมีมากเกินไป open() วิธีการบันทึก "open" อย่างไรก็ตามการทำงานนี้ _super() เรียกว่าโต้ตอบ (โต้ตอบ) ของ open() และเปิดกล่องโต้ตอบ

$.widget( "custom.superDialog", $.ui.dialog, {
    open: function() {
        console.log( "open" );
 
        // Invoke the parent widget's open().
        return this._super();
    }
});
 
$( "<div>" ).superDialog();

_super() และ _superApply() เป็นจริงเหมือนกับต้นฉบับ Function.prototype.call() และ Function.prototype.apply() วิธีการ ดังนั้น _super() ยอมรับรายชื่อของพารามิเตอร์ที่ _superApply() ยอมรับอาร์เรย์เป็นพารามิเตอร์หนึ่ง ตัวอย่างต่อไปนี้แสดงให้เห็นว่าแตกต่างกันระหว่างคนทั้งสอง

$.widget( "custom.superDialog", $.ui.dialog, {
    _setOption: function( key, value ) {
 
        // Both invoke dialog's setOption() method. _super() requires the arguments
        // be passed as an argument list, _superApply() as a single array.
        this._super( key, value );
        this._superApply( arguments );
    }
});

redefine วิดเจ็ต

jQuery UI 1.9 เพิ่มฟังก์ชั่น redefine วิดเจ็ต ดังนั้นคุณไม่สามารถสร้างเครื่องมือใหม่ที่เราจะต้องผ่าน $.widget() เพื่อให้ชื่อวิดเจ็ตที่มีอยู่และคอนสตรัค ตัวอย่างต่อไปนี้ใน open() เพื่อจัดเก็บเหมือนกัน แต่ไม่ได้โดยการสร้างเครื่องมือใหม่ที่จะเสร็จสมบูรณ์

$.widget( "ui.dialog", $.ui.dialog, {
    open: function() {
        console.log( "open" );
        return this._super();
    }
});
 
$( "<div>" ).dialog();

ผ่านวิธีการนี้เราสามารถขยายส่วนเล็ก ๆ ของวิธีการที่มีอยู่ แต่คุณยังสามารถใช้ _super() ในการเข้าถึงวิธีการเดิม - เหล่านี้ไม่ได้โดยการสร้างเครื่องมือใหม่ที่จะเสร็จสมบูรณ์ แต่ที่เป็นโดยตรง redefine วิดเจ็ต สามารถ

วิดเจ็ต (วิดเจ็ต) และความแตกต่าง (Polymorphism)

เมื่อขยายระหว่างเครื่องมือและปลั๊กอินในการโต้ตอบกับเวลาของพวกเขาก็เป็นที่น่าสังเกตว่าสมาชิกปลั๊กไม่สามารถใช้ในการเรียกผู้ปกครององค์ประกอบวิธีส่วนประกอบย่อย ตัวอย่างต่อไปนี้แสดงให้เห็นถึงนี้

$.widget( "custom.superDialog", $.ui.dialog, {} );
 
var dialog = $( "<div>" ).superDialog();
 
// This works.
dialog.superDialog( "close" );
 
// This doesn't.
dialog.dialog( "close" );

ตัวอย่างข้างต้นสมาชิกแม่ของ plug-in dialog() คุณจะไม่สามารถเรียกองค์ประกอบ superDialog บน close() วิธีการ สำหรับข้อมูลเพิ่มเติมโทรวิธีวิดเจ็ตให้ดูที่ วิดเจ็ต (Widget) วิธีการโทร

ตัวอย่างของบุคคลที่กำหนดเอง

กรณีที่ทำให้เราได้เห็นวิธีการขยาย Widget ต้นแบบ ต้นแบบวิธีการมากเกินไปส่งผลกระทบต่อทุกกรณีของเครื่องมือ

เพื่อแสดงให้เห็นถึงจุดนี้พิจารณาตัวอย่างต่อไปนี้ โต้ตอบ (โต้ตอบ) กองทัพทั้งสองกำลังใช้เดียวกัน open() วิธีการ

$.widget( "ui.dialog", $.ui.dialog, {
    open: function() {
        console.log( "open" );
        return this._super();
    }
});
 
// Create two dialogs, both use the same open(), therefore "open" is logged twice.
$( "<div>" ).dialog();
$( "<div>" ).dialog();

บางครั้งคุณก็ต้องมีการเปลี่ยนแปลงพฤติกรรมของอินสแตนซ์ของเครื่องมือนั้น การทำเช่นนี้คุณจะต้องใช้ตามปกติที่ได้รับมอบหมายแอตทริบิวต์ JavaScript, ได้รับการอ้างอิงถึงกรณีและแทนที่วิธีนี้ ในฐานะที่เป็นตัวอย่างที่เฉพาะเจาะจงที่แสดงด้านล่าง

var dialogInstance = $( "<div>" )
    .dialog()
    // Retrieve the dialog's instance and store it.
    .data( "ui-dialog" );
 
// Override the close() method for this dialog
dialogInstance.close = function() {
    console.log( "close" );
};
 
// Create a second dialog
$( "<div>" ).dialog();
 
// Select both dialogs and call close() on each of them.
// "close" will only be logged once.
$( ":data(ui-dialog)" ).dialog( "close" );

มากเกินไปส่วนบุคคลทางเทคนิคเป็นตัวอย่างที่สมบูรณ์แบบของการปรับแต่งครั้งเดียว