panggilan kaedah widget UI jQuery


Widget dicipta melalui Kilang Widget menggunakan kaedah untuk menukar keadaan permulaannya dan melakukan tindakan. Terdapat dua cara untuk memanggil kaedah widget - melalui pemalam yang dicipta oleh Kilang Widget, atau dengan memanggil kaedah pada objek contoh elemen.

Panggilan pemalam

Gunakan kaedah panggilan pemalam widget dan hantar nama kaedah sebagai rentetan. Contohnya, klik di sini untuk melihat cara memanggil kaedah close() widget dialog.

$( ".selector" ).dialog( "close" );

Jika kaedah memerlukan parameter, sila hantarkannya sebagai parameter tambahan kepada pemalam. Klik di sini untuk melihat cara memanggil option() kaedah dialog.

$( ".selector" ).dialog( "option", "height" );

Ini mengembalikan nilai pilihan height dialog.

Panggilan contoh

Setiap tika setiap widget disimpan pada elemen menggunakan jQuery.data(). Untuk mendapatkan semula objek contoh, panggil jQuery.data() dengan nama penuh widget sebagai kunci. Butirannya ditunjukkan dalam contoh berikut.

var dialog = $( ".selector" ).data( "ui-dialog" );

Selepas anda mempunyai rujukan kepada objek contoh, anda boleh memanggil kaedah terus padanya.

var dialog = $( ".selector" ).data( "ui-dialog" );
dialog.close();

Dalam jQuery UI 1.11, kaedah instance() baharu akan memudahkan proses ini.

$( ".selector" ).dialog( "instance" ).close();

Jenis pengembalian

Kebanyakan kaedah yang dipanggil melalui pemalam widget akan mengembalikan objek jQuery, jadi panggilan kaedah boleh dirantai melalui kaedah jQuery tambahan. Apabila dipanggil pada contoh, undefined dikembalikan. Butirannya ditunjukkan dalam contoh berikut.

var dialog = $( ".selector" ).dialog();
 
// Instance invocation - returns undefined
dialog.data( "ui-dialog" ).close();
 
// Plugin invocation - returns a jQuery object
dialog.dialog( "close" );
 
// Therefore, plugin method invocation makes it possible to
// chain method calls with other jQuery functions
dialog.dialog( "close" )
    .css( "color", "red" );

Pengecualian ialah kaedah yang mengembalikan maklumat tentang widget. Contohnya, kaedah isOpen() dialog.

$( ".selector" )
    .dialog( "isOpen" )
    // This will throw a TypeError
    .css( "color", "red" );

Ini akan menghasilkan ralat TypeError kerana isOpen() mengembalikan nilai boolean, bukan objek jQuery.