更新:質問を編集して、さらに情報を追加しました。
私のアプリは、ブラウザーでXMLデータを直接表示します。ここで想定できるクライアント側のXSLT処理は、薄いHTMLラッパー内のID変換にすぎないと想定できます。
<xsl:output method="xml" indent="no" encoding="utf-8" />
<xsl:template match ="/">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
</head>
<body>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</body>
</html>
</xsl:template>
jQuery 1.8.3では、これは
$("*[target]").click(function (event) {
alert("click");
});
@target属性を持つ要素を選択します(または選択する必要があります)。
これはIEとChromeで正常に機能しますが、Firefoxでは、XSLT出力を「html」に変更しない限りjQueryは何も選択しません。これにより、他のことが混乱します。
Firefoxで、jQueryに非HTMLのXML要素を選択させる正しい方法は何ですか?または(同じことを別の言い方で言うかもしれませんが)jQueryにカスタムHTML要素を選択させる正しい方法は何ですか?
更新:問題の原因が見つかりました。セレクターは$(document).ready()内にあり、FirefoxのXSLT(output ='xml')でスタイル設定されたXMLドキュメントでは起動しないため、選択しません。同じ問題を抱えている他の人:http://forum.jquery.com/topic/document-ready-with-xslt-in-xhtml
それを起動させるためのパラメーターとコード順序の組み合わせが見つかりませんでした。これまでの私の回避策は、$(document).ready()の代わりに$(window).load()を使用することです。
その他の更新このためのjQueryバグレポート#13193があります。http://bugs.jquery.com/ticket/13193