0

次のコードは ASP で正常に動作していました。

// loads the video/presentation/pdf into the central div
        $(document).ready(function () {
            $(".video, .pdfdoc, .presentation").click(function (е) {
                е.preventDefault();
                var url = this.href;
                if ($(this).hasClass("video")) {
                    $(".onCenterBig").html('<video width="800" height="500" controls><source src="' + url + '" type="video/mp4" /></video>');
                }
                else if ($(this).hasClass("pdfdoc")) {
                    $(".onCenterBig").html('<object data="' + url + '" type="application/pdf" width="880" height="620">alt : <a href="' + url + '">test.pdf</a></object>');
                }
                else {
                    $(".onCenterBig").html('<h2>PRESENTATION</h2>');
                }
            });
        });

しかし、プロジェクトを ASP-MVC3 に転送する必要があり、変更したのはファイルのパスだけでした。

...<source src="/Content/media/' + url + '" type="video/mp4" /></video>');

'<object data="/Content/media/' + url + '" type="application/pdf" width="880" height="620">alt : <a href=/Content/media/' + url + '"...

問題はファイルパスにあると思いましたが、そうではありません。別の場所(画像付き)で同じ方法でURLを入力し、正常に機能しているためです。

奇妙なことに、3 番目の選択肢 (クリックすると単純に と書くだけ) でさえ、<h2>PRESENTATION</h2>うまく機能しません。ASPとASP-MVCが違うので、HTMLコードの入力方法はあると思います。

私が使用しているプロジェクトの他の場所で、文字列からページに HTML をロードするために、使用が役立つ@Html.Raw(System.Web.HttpUtility.HtmlDecode(@ViewBag.MediaWindow))かどうかはわかりません。@Html.Raw....HtmlDecode....そして、JSコードでそれを悪用する方法がよくわかりません。ブラウザのコンソールを確認すると、エラーや疑わしいものは何も表示されません。

では、その HTML をロードするにはどうすればよいでしょうか?

4

1 に答える 1

0

あなたのjsスクリプトはどこにありますか? 何も問題はありません...私はこれをテストしました:

HTML

<div id="test">Test</div>

JS

<script type="text/javascript">
    $("#test").click(function () {
        $("#test").html('<div style="width: 200px; height: 200px; background-color: red; color: white;">test</div>');
    });
</script>

ASP/MVC などのフレームワークでバージョンの問題が発生したという話は聞いたことがありませんが、jQ をアップグレードしてみてください。

おそらく、 $(document).ready() クロージャーを削除するか、.click() の代わりに jQ で .on() バインディング関数を使用してみてください。

編集:これはコメントのほうが多いことは承知していますが、十分なスペースがありません:P

于 2013-09-09T13:54:43.227 に答える