2

この問題は他のどこでも発生しているとは思いませんが、間違っている場合は訂正してください。

ページに画像のスライドショーを追加するために、ネット上で見つけた美しいJavaScriptコードを使用しています。ASP.NETページに追加しましたが、正常に動作し、画像は適切な間隔で正しく表示されます。ただし、問題は、ページを更新するたびに(F5またはアドレスバーの[更新]ボタン、ちなみにIE9でテストしています)、次のエラーメッセージが表示されることです。行:17エラー:'jQuery'は未定義

続いて:Line:44エラー:プロパティ'jQuery'の値がnullまたは未定義であり、Functionオブジェクトではありません。

別のページに移動して[戻る]ボタンをクリックすると、スライドショーも完全に機能します。問題はページの更新時にのみ発生するようです。

ASPヘッダーコンテンツタグ内のコードは次のとおりです。

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="Scripts/fadeslideshow.js"></script>

スライドショーのコードは、「ダイナミックドライブ」(Ultimate Fade In Slideshow v2.0)http://www.dynamicdrive.com/から取得されました。

エラーがページの読み込み時にjavascriptが呼び出される順序に関係している場合に備えて、ASP本文のコンテンツタグ内の下部セクションにjavascript参照を移動してみました。私は本当にほとんど考えがなく、現時点では少し立ち往生していますが。どんな助けでも大歓迎です。

ASP.NETページのコード:

<%@ Page Title="Community Support" Language="VB" MasterPageFile="~/Main.Master" AutoEventWireup="false"
CodeFile="Copy of CommunitySupport.aspx.vb" Inherits="CommunitySupport" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="Scripts/fadeslideshow.js">

    /***********************************************
    * Ultimate Fade In Slideshow v2.0- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)
    * This notice MUST stay intact for legal use
    * Visit Dynamic Drive at http://www.dynamicdrive.com/ for this script and 100s more
    ***********************************************/
</script>
<script type="text/javascript">

    var defaultPhoto1 = new String("");
    var defaultPhoto2 = new String("");
    var defaultCaption1 = new String("");
    var defaultCaption2 = new String("");

    defaultCaption1 = "caption A";
    defaultCaption2 = "caption B";

    defaultPhoto1 = "Images/photo1.png";
    defaultPhoto2 = "Images/photo2.png";

    function getSlideShowImages() {

                var mygallery = new fadeSlideShow({
                wrapperid: "fadeshow1", //ID of blank DIV on page to house Slideshow
                dimensions: [320, 220], //width/height of gallery in pixels. Should reflect dimensions of largest image
                imagearray: [
                [defaultPhoto1, "", "", defaultCaption1],
                [defaultPhoto2, "", "", defaultCaption2]

            ] //<--no trailing comma after very last image element!
            ,
                displaymode: { type: 'auto', pause: 2500, cycles: 0, wraparound: false },
                persist: false, //remember last viewed slide and recall within same session?
                fadeduration: 500, //transition duration (milliseconds)
                descreveal: "ondemand",
                togglerid: ""
            })            
    }
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:HiddenField ID="hidSlideShow" runat="server"/>            
<asp:HiddenField ID="hidCaptions" runat="server"/>
<table width="100%">
    <tr>
        <td width="60%" valign="top">
                    <table width="100%">
                        <tr>
                            <td width="100%" valign="bottom" class="heading1">Title
                            </td>                                                            
                        </tr>                              
                        <tr>
                            <td width="100%"><br />Content
                            </td>
                        </tr>
                        <tr>                                
                        </tr>
                    </table>
        </td>
        <td width="40%" valign="top">
            <div id="fadeshow1" class="slideDiv">
            </div>
        </td>
    </tr>
</table>

「fadeshow1」divは、スライドショーが表示されている場所です。

4

2 に答える 2

0

関数を「準備完了」関数内に配置する必要があるようです。http://api.jquery.com/ready/

$(document).ready(function() {
  getSlideShowImages();
});
于 2012-09-17T08:17:01.323 に答える
0

jQuery のバージョンにタイプミスがあります。1.4.2 ライブラリ スクリプトのリファレンス。からの ASP ヘッダー コンテンツ設定で、jquery ライブラリを正しく参照する必要があります。

src="http://ajax.googleapis.com/ajax/libs/jquery/1.42./jquery.min.js"

に:

src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"

fadeSlideShowオブジェクトを初期化するたびに、終端のセミコロンが欠落していることにも気付きました。

var mygallery = new fadeSlideShow({
            wrapperid: "fadeshow1", //ID of blank DIV on page to house Slideshow
            dimensions: [320, 220], //width/height of gallery in pixels. Should reflect dimensions of largest image
            imagearray: [
            [imageArray[0], imageArray[0], "_new", captionArray[0]],
            [imageArray[1], imageArray[1], "_new", captionArray[1]],
            [imageArray[2], imageArray[2], "_new", captionArray[2]],
            [imageArray[3], imageArray[3], "_new", captionArray[3]]

        ] //<--no trailing comma after very last image element!
        ,
            displaymode: { type: 'auto', pause: 2500, cycles: 0, wraparound: false },
            persist: false, //remember last viewed slide and recall within same session?
            fadeduration: 500, //transition duration (milliseconds)
            descreveal: "ondemand",
            togglerid: ""
        }); //<-- semi-colon here

変更を行った後は、ブラウザのキャッシュをクリアすることを忘れないでください。

于 2012-09-17T08:03:15.127 に答える