Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript:单击按钮时加载简单图像_Javascript_Image - Fatal编程技术网

JavaScript:单击按钮时加载简单图像

JavaScript:单击按钮时加载简单图像,javascript,image,Javascript,Image,我对JavaScript相当陌生,但不熟悉编程。我的练习是创建一个显示图像的页面,并允许用户通过单击按钮转到下一个/上一个图像。我想在单击按钮时从服务器加载下一个/上一个图像,这样页面就不必一次将所有图像加载到浏览器中 这个版本只有一个按钮可以转到下一个图像,我正在尝试用jQuery或AJAX加载它。页面加载初始的“image0”,JavaScript调试器显示onClick事件执行并执行我预期的操作,但图像没有改变 <html> <head> <script sr

我对JavaScript相当陌生,但不熟悉编程。我的练习是创建一个显示图像的页面,并允许用户通过单击按钮转到下一个/上一个图像。我想在单击按钮时从服务器加载下一个/上一个图像,这样页面就不必一次将所有图像加载到浏览器中

这个版本只有一个按钮可以转到下一个图像,我正在尝试用jQuery或AJAX加载它。页面加载初始的“image0”,JavaScript调试器显示onClick事件执行并执行我预期的操作,但图像没有改变

<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script>
var imageIndex = 0;
var jpgImageName = "image0"
var loadString = "images/" + jpgImageName + ".JPG";

function changeImage()
{
  imageIndex++;
  if (imageIndex > 2) { imageIndex = 0; }
  var locationString = "images/image" + imageIndex + ".JPG";
  var loadString = $("<img />").attr('src', locationString);
  $("imageSlot").append(loadString);
}

</script>
</head>
<body>

<div id="imageSlot">
  <img id="currentImage" src="images/image0.JPG" height="400" alt="image"+imageIndex/>
</div>
<button id="changeImage" onclick="changeImage()">Change Image</button>

</body>
</html>

var指数=0;
var jpgImageName=“image0”
var loadString=“images/”+jpgImageName+“.JPG”;
函数changeImage()
{
imageIndex++;
如果(imageIndex>2){imageIndex=0;}
var locationString=“images/image”+imageIndex+“.JPG”;
var loadString=$(“
改变形象
我从另一个堆栈溢出示例中获得了
append
函数。我想替换当前图像,并且看到了使用
html()
而不是
append()
的建议,但我想在开始更改示例之前,我会尝试让它正常工作

我还尝试了一个
.load()
函数在图像本身上使用下一个图像的URL。这也不起作用,尽管在上面的示例中尝试同时显示这两种方法可能会让阅读问题的人感到困惑。但是如果您想向我展示如何以这种方式或两种方式解决问题,那就太好了。

您可以尝试使用$(“#imageSlot”).append(loadString)?

您可以尝试使用$(“#imageSlot”).append(loadString);?

将行更改为

$('img').attr('src', locationString);
并删除append()-行

将该行更改为

$('img').attr('src', locationString);

并删除append()-行

如果要用下一个图像替换当前图像,则可以尝试直接更改当前图像的src:

function changeImage()
{
  imageIndex++;
  if (imageIndex > 2) { imageIndex = 0; }
  var locationString = "images/image" + imageIndex + ".JPG";
  $('#currentImage').attr('src', locationString);
}

如果要用下一个图像替换当前图像,则可以尝试直接更改当前图像的src:

function changeImage()
{
  imageIndex++;
  if (imageIndex > 2) { imageIndex = 0; }
  var locationString = "images/image" + imageIndex + ".JPG";
  $('#currentImage').attr('src', locationString);
}

为您的函数尝试以下操作:

  function changeImage(){
      imageIndex++;
      imageIndex = imageIndex % 2; //here '2' is the number of images you have (result is always 0 or 1 in this case)
      var locationString = "images/image" + imageIndex + ".JPG";
      $('#currentImage').attr('src', locationString);//set the 'src' attribute inline

  }

为您的函数尝试以下操作:

  function changeImage(){
      imageIndex++;
      imageIndex = imageIndex % 2; //here '2' is the number of images you have (result is always 0 or 1 in this case)
      var locationString = "images/image" + imageIndex + ".JPG";
      $('#currentImage').attr('src', locationString);//set the 'src' attribute inline

  }

循环通常写为
imageIndex=(imageIndex+1)%3;
。循环通常写为
imageIndex=(imageIndex+1)%3;
。.currentImage将标识一个类,但我拥有的是一个id。否则,这与下面给出的另一个相同。.currentImage“将识别一个类,但我拥有的是一个id。否则,这与下面给出的另一个相同。谢谢。我仍然想知道另一个有什么问题,但至少这符合我的要求。谢谢。我仍然想知道另一个有什么问题,但至少这符合我的要求。”。