jQuery .load()不能在线工作,但可以在我的本地驱动器上运行

时间:2016-01-05 08:04:39

标签: jquery

这个代码在家里的计算机上运行正常(不在线),但是当我将它完全上传到我的服务器(所有代码都与我的家用电脑上相同)时,jQuery代码不想工作。 当您将鼠标悬停在图像上时,P元素P1应该将文本值更改为.txt文件所说的内容。我无法将.txt文件附加到代码段中,因此我的示例并未完全反映出来。我输入随机文本只是为了说明应该发生什么。通常情况下,P1为空白,当IMG悬停时,文本值会更改为.txt状态。

我觉得它与我加载.txt文件时有关,它可能正在查找错误的目录

$(document).ready(function() {
  $('img').mouseover(function() {
    $('#p1').load('file.txt');
  });

  $('img').mouseout(function() {
    $('#p1').html('');
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img src="http://placehold.it/200x100" hspace="15"></img>
<img src="http://placehold.it/200x100" hspace="15"></img>
<img src="http://placehold.it/200x100" hspace="15"></img>
<p id="p1">sdfsd</p>

1 个答案:

答案 0 :(得分:1)

修改 您的服务器似乎没有提供.txt类型的文件(当我尝试访问我得到的网址404时),因此您需要将文件扩展名更改为其他内容,例如html的。

除此之外,请参阅下文,了解如何使用绝对路径而不是相对路径(这将确保您的js代码在您网站的每个页面中都有效,无论当前页面的访问路径如何)。

如果文本文件位于网站的根目录中,则应使用

$('#p1').load('/file.txt');

而不是

$('#p1').load('file.txt');

(注意'/')。这样,无论当前路径如何,它都将始终有效。

编辑很明显,如果文件在子目录中,那么它应该是

$('#p1').load('/path/to/file.txt');

编辑2根据您提供的信息

$('#p1').load('/jquery/file.txt');