0

HTML+Javascript を使用して Metro でアプリを開発しています。img タグでリンクを作成するためにリンクを使用すると、リンクが機能しません。

<h4><a href="/pages/childpage.html">Go to child page</a></h4>
<a href="/pages/childpage.html"><img src="/images/home/child.jpg" /></a>

最初のリンクは正常に機能しますが、2 番目のリンクは機能しません。画像をクリックすると、アプリがブロックされます。

リンクについては、ドキュメントで提案されているようにApplication.PageControlNavigator を使用しています。私のJSは:

(function () {
   "use strict"; 

   function linkClickEventHandler(eventInfo) {
       eventInfo.preventDefault();
       var link = eventInfo.target;
       WinJS.Navigation.navigate(link.href);
   }

   WinJS.UI.Pages.define("/pages/home/home.html", {
       ready: function (element, options) {
           WinJS.Utilities.query("a").listen("click", linkClickEventHandler, false);
           WinJS.UI.processAll();
       }
   });
})();
4

3 に答える 3

2

あなたはこれを行うことができます:

タグの onclick プロパティを使用して、<a>以下に示すように handler() 関数を呼び出します。

<a onclick="handler();"><img src="/images/home/child.png" /></a>

ハンドラー関数の本体は次のとおりです。

function handler()
{
     WinJS.Navigation.navigate('/pages/childpage.html');
}

私にとってはうまくいきました。

于 2012-11-07T05:46:33.997 に答える
2

問題は、タグをタグ内で使用すると、link.href が href 文字列ではなく src 文字列を返すことです。あなたの場合、link.href は「/images/home/child.jpg」を返します。これは機能ではなくバグだと思います。回避策は、href.link を使用しないことです。

于 2012-09-12T13:39:58.800 に答える
0

ブロックとは、「ハング」を意味していると思いますか?画像をクリックしたときに linkClickEventHandler を呼び出していますか?

于 2012-07-20T15:37:22.490 に答える