ฉันได้รับทำมาก XSLT jQuery และความคิดที่ฉันจะแบ่งปันส่วนย่อยของโค้ดบางอย่างที่ผู้อื่นอาจพบว่ามีประโยชน์ในอนาคต.
ตัวอย่าง 1: คายวิ JavaScript / jQuery ใน XSLT:
<xsl:แม่แบบตรง = "สิ่ง" xml:เนื้อที่ = "รักษา">
<!– ว่างออกจากแบบสอบถามเป็นมิตรกรองเขตข้อมูลที่ซ่อนอยู่ –>
<สคริปต์ชนิด = "ข้อ ความ/javascript">
$(เอกสาร).พร้อม(ฟังก์ชัน(){
$("#QueryFriendlyFilters").val("ว่างเปล่า");
});
</สคริปต์></xsl:แม่แบบ>
บิตที่ emits JavaScript บางที่รอหน้าเพื่อเสร็จสิ้นการโหลด (เนื่องจากการ $(เอกสาร).พร้อม(…)) แล้ว ชุดค่าของเขตข้อมูลที่ซ่อนอยู่ชื่อว่า QueryFriendlyFilters ค่าสัญพจน์ "ว่างเปล่า".
ตัวอย่าง 2: ใช้ <xsl:ถ้า> การตรวจสอบ "มากกว่า", "น้อยกว่า", ฯลฯ.
<xsl:แม่แบบตรง = "สิ่ง" xml:เนื้อที่ = "รักษา">
<div id = "fdcAllFilters">
<xsl:ถ้า test="@Count>0">
<ขยายคลาส = "fdcFilterLabel">ตัวกรองปัจจุบัน:</ขยาย>
</xsl:ถ้า><!– สิ่งที่เพิ่มเติมเกิดขึ้นที่นี่. –>
</xsl:แม่แบบ>
คำสั่งย่อยด้านบนตรวจสอบเพื่อดูว่าแอตทริบิวต์ที่มีชื่อว่า "นับ" ขององค์ประกอบ "สิ่ง" มากกว่าศูนย์ XML เบื้องหลังนี้จะเป็นสิ่งที่ต้องการ:”
<สิ่ง Count = "5" />
ตัวอย่าง 3: ทำซ้ำผ่านองค์ประกอบทั้งหมด, interspersing jQuery สาย.
<!– ทำซ้ำผ่านตัวกรองทั้งหมด และแสดงถูกต้อง การเชื่อมโยง. –>
<xsl:แต่สำหรับละเลือก = "UserFilter"><คลาสที่ = "FilterHref" href = "javascript:mySubmitPage('RemoveUserFilter','{@ ID}’)">[X]</การ>
<ขยายคลาส = "fdcFilterLabel"><xsl:ค่าของ select="@FilterValue"/></ขยาย>
<สคริปต์ชนิด = "ข้อ ความ/javascript">$(เอกสาร).พร้อม(ฟังก์ชัน(){
<xsl:ข้อความ><![CDATA[$("#QueryFriendlyFilters").val( ($("#QueryFriendlyFilters").val() + " ]]></xsl:ข้อความ>\"<xsl:ค่าของ select="@FilterValue"/>\"<xsl:ข้อความ><![CDATA["));]]></xsl:ข้อความ>
});</สคริปต์>
</xsl:แต่สำหรับละ>
ส่วนย่อยด้านบนสุดซับซ้อน และอาจมีวิธีทำได้ง่ายขึ้น.
XML เบื้องหลังนี้มีลักษณะประมาณดังนี้:
<UserFilter ID = "123" FilterValue = "xyzzy" />
คำสั่งย่อยนี้จะวนผ่าน <UserFilter> โหนด
Emits จุดยึดก่อนแท็กที่เมื่อคลิกแล้ว JavaScript ฟังก์ชันที่มีอยู่แล้วในหน้าการเรียกใช้เมธ, "mySubmitPage" และการส่งผ่านค่าของแอตทริบิวต์ในการ <UserFilter> โหนดที่ชื่อว่า "ID"
มัน emits jQuery บางที่รอหน้าเพื่อโหลดแล้ว JQuery ที่ปรับปรุงเขตข้อมูลที่ซ่อนชื่อ "QueryFriendlyFilters" โดยการเพิ่มค่าของแอตทริบิวต์ FilterValue หมายเหตุเมาทั้งหมด <xsl:ข้อความ> และ <![CDATA[ … ]]> สิ่งที่.
แค่นี้, หวังว่า จะช่วย!
</สิ้นสุด>
ทำตามฉันใน Twitter ที่ http://www.twitter.com/pagalvin