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.