Ini merupakan satu lagi jawatan dalam saya siri berterusan bagaimana untuk menggunakan jQuery dengan SharePoint.
Jika anda ingin mengetahui lebih lanjut mengenai jQuery, Saya sangat mengesyorkan: jQuery dalam Tindakan oleh Bear Bibeault dan Yehuda Katz.
Sebelum ini, Saya menulis mengenai cara untuk menggunakan jQuery untuk mengesan dan sembunyikan medan teks pada satu borang. Aku tidak peduli pendekatan yang khusus (Saya adalah ibu bapa chaining - itu hanya tidak dilakukan pada hari ini, sekurang-kurangnya dalam keluarga berkualiti).
Apabila saya mula berfikir tentang hal itu, Saya tahu saya perlu mencari <TR> yang saya boleh dirujuk Sembunyikan() kaedah. Usaha awal saya untuk mencari saluran <TR> adalah sesuatu yang seperti ini:
$('Tr:mempunyai(input[title = Sembunyikan Me!])');
Masalah dengan itu adalah bahawa ia akan mencari setiap <TR> tag yang mempunyai apa-apa hubungan ibu bapa Sembunyikan saya! bidang, walaupun Hide Me! yang bersarang banyak tahap yang mendalam dalam <TR>di. Ternyata bahawa borang sandbox saya, ungkapan yang mendapati 9 TR yang berbeza ini yang telah Sembunyikan Me! sebagai seorang kanak-kanak di suatu tempat di dalam DOM pokok. Saya sedar bahawa saya boleh berjalan kembali pokok dari medan input itu sendiri, Jadi itulah sebabnya bagaimana saya berakhir menyalahgunakan ibu bapa, tetapi ia tidak duduk baik dengan saya.
Saya memberikan beberapa fikir ini dan salah satu perkara yang saya baca akhirnya akal: Saya boleh menggunakan yang tidak() kaedah untuk mengurangkan Keluar <TR>dan saya tidak mahu dalam saya berbalut. Yang membawa saya ke ini:
$('Tr:mempunyai(input[title = Sembunyikan Me!])').tidak('Tr:mempunyai(tr)').menyembunyikan();
Bit pertama mendapati semua pihak <TR> tag yang telah Sembunyikan saya! medan di mana-mana dalam hierarki mereka sendiri. Ia kemudian jalur keluar mana-mana <TR> yang juga mempunyai seorang kanak-kanak <TR>. Ini meninggalkan kita dengan satu <TR> yang:
1) Tidak mempunyai <TR> rekod-rekod kanak-kanak
2) Mempunyai medan input seperti kanak-kanak.
Kemudian, kita boleh mengaplikasikan Sembunyikan() menetapkan kaedah untuk hasilnya dan kami telah selesai.
Saya masih agak gementar mengenai perkara ini, tetapi tidak seperti saraf seperti perantaian ibu bapa.
Saya tidak tahu jika ini adalah amalan terbaik atau tidak. Mungkin ada cara yang lebih sesuai untuk mengenalpasti hanya di <TR> bahawa kita mengambil berat tentang borang SharePoint. Jika anda tahu, sila hantar komen.
</akhir>
Mengikuti aku di Twitter http://www.twitter.com/pagalvin
Hi Paul,
Paul Culmsee dari Workarounds pandai menulis satu artikel mengenai tepat isu yang sama (mencari TR betul untuk menyembunyikan padang bola) menggunakan JavaScript kosong, tidak menjelaskan jQuery. Dia mendapati satu cara universal untuk mencari TR untuk menyembunyikan, Ianya di penghujung blogpost ini : http://www.cleverworkarounds.com/2008/02/07/more-sharepoint-branding-customisation-using-javascript-part-1/
berharap ia membantu,
Jonathan
Pingback: Sembunyi padang bola dalam bentuk edit SharePoint berdasarkan nilai-nilai lain « jbmurphy.com