0

私は解決策がなく、検索と検索を行ってきました。私はこのhtmlを持っています:

<div class="content_wrap"> 
  <script src="jslib/random_image.js"></script>
</div>

そしてリンク:

<li><a href="javascript:location.reload();" target="_self">Random image</a></li>

しかし、ページ全体をリロードする(ラメ)代わりに、divをリフレッシュする(可能かどうかわからない)か、少なくともリフレッシュしたいrandom_image.js

jQueryでこれをどのように行うことができますか? またはPHP、または何か他のもの?

4

3 に答える 3

0

divにimgがあると仮定します

<div class="content_wrap"> 
  <script src="jslib/random_image.js"></script>
  <img id="random_image" href="">
</div>


function updateNewImage(){
//make ajax to server 
// get new url store it in variable new_href
// update random_image  $("$random_image").attr("href",new_href);
}
<li><a href="javascript:updateNewImage();" target="_self">Random image</a></li>

onclickで関数を呼び出すと、ajaxを使用して新しい画像のURLを取得し、imghrefの場所を更新できます。

于 2012-12-23T08:09:00.270 に答える
0

コードをテストしていませんが、大きな間違いがないと仮定すると、これでテストできます。私はあなたがjQueryを持っていると仮定しています(単純なjsでも実行できますが、jqを使用することもできます):

<div class="content_wrap" id="content_wrap"> 
  <img id="rndImg1" src="clicktorelodme.png"/>
</div>

<script>
function reloadImage(imgId) {
    String randomImgSrc = "anewimgsrc.png";
    $("#content_wrap").find("#"+imgId).attr("src", randomImgSrc);
}
</script>


<li><a href="#" onclick="reloadImage('rndImg1'); return false;">Random image</a></li>

別の回答に対する回答を見ると、画像を更新するだけでなく、画像の設定やタイトルの設定などの「処理」を行うコードをロードしたいと考えています。

そのためには、ページに新しいスクリプト要素を追加するなど、他のことを行う必要があります。そうすれば、好きなことを実行できます。その方法を学ぶためにこの答えを見てください。

于 2012-12-23T08:13:07.997 に答える
0

まず、ID などの DIV を参照する方法が必要です。

<div class="content_wrap" id="randomImage">
    <script src="jslib/random_image.js"></script>
</div>

次に、DIV をリロードするには、その内容を単純に書き換えます。これはブラウザーによってキャッシュされる可能性があるため、スクリプトの動作方法によっては、ダミーのパラメーターを呼び出しに追加する必要がある場合があります。

DIV全体を空にして再作成することを再宣言するか、より詳細な制御を提供するものappend()を使用できます。.load()

$('#randomImage').load('jslib/random_image.js?dummy='+Math.random(),
    function(res, status, xhr){
        if ('success' != status)
        {
            // Do something with the image, maybe load a default one
            return;
        }
});
于 2012-12-23T09:18:56.637 に答える