0

javascript から asp 画像要素の src プロパティを設定しようとしていますが、url プロパティが設定されていません。

function slideshow() {
  $.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "/RollingScreen.aspx/GetNextImage",
    dataType: "json",
    data: "{}",
    success: function (data) {
      //this changes the image on the web page
      $('#imgSlideShow').attr("src","~/1.png");
      $("#txt1").val(data.d);
      //fires another sleep/image cycle
      setTimeout(slideshow,5000);
    },
    error: function (result) {
      alert(result.message);
    }
  });
}

$(document).ready(function () {
  //Kicks the slideshow
  slideshow();
});

私のaspx画像要素は

<asp:Image ID="imgSlideShow" runat="server" Height="300px" Width="600px" ImageAlign="Middle" ImageUrl="~/1.png"/>....

誰でも私を助けてくれませんか...

4

1 に答える 1

2

あなたの間違いは、asp.net で設定した ID を使用しようとしていることです。ただし、runat="server" 要素は異なる ID でレンダリングされます。のようなものContent1_Content2_imgSlideShowimgSlideShow.ClientIDサーバー側で使用して取得できます$('#' + jsVariableWithClientID)。しかし、私はいくつかの一意のクラスを使用することを好みます (クライアント ID を JS に渡すことに問題はありません):

<asp:Image ID="imgSlideShow" CssClass="imgSlideShow" runat="server" Height="300px" Width="600px" ImageAlign="Middle" ImageUrl="~/1.png"/>

JS よりも、クラス セレクターを使用します。

$('.imgSlideShow').attr("src","/1.png");

もう 1 つの問題は、JS が認識していないこと~です。これは asp.net 機能のみです。そして、次のように src の画像 URL を指定する必要があります: "/1.png"(ルート ディレクトリにあると仮定します)

于 2012-11-12T09:18:19.710 に答える