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>

但是,我不想重新加载整个页面(la脚),而是想刷新 div (不确定是否可能)或至少 refresh random_image.js

你怎么能用 jQuery 做到这一点?或者 PHP,或者别的什么?

4

3 回答 3

0

您首先需要一种方法来引用您的 DIV,例如 id:

<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 回答
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,然后您可以更新 img href 位置。

于 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 回答