我正在处理一个项目,我的问题是调用这样的jQuery函数将它放在我的php文件中。我经常尝试搜索,但我总是会出错:
功能:
$(function(){
$(".panorama-view").panorama360();
});
Php文件
<?php
echo '<link rel="stylesheet" href="/css/panorama360.css" rel="stylesheet" >';
echo '<script src="/js/jquery.mousewheel.min.js" ></script>';
echo ' <script src="/js/jquery.panorama360.js" ></script>';
echo '<script> $(function(){ $(\'.panorama-view\').panorama360(); }); </script>';
echo '</script>';
if(isset($_POST['upload'])) {
$image_name= $_FILES['image']['name'];
$image_type= $_FILES['image']['type'];
$image_size= $_FILES['image']['size'];
$image_tmp= $_FILES['image']['tmp_name'];
if(move_uploaded_file($image_tmp,"uploadedimg/$image_name"))
{
echo "<script type='text/javascript'>alert('File Uploaded!');</script>";
}
$folder= "uploadedimg/";
if(is_dir($folder)) {
if($handle = opendir($folder)){
while(($file= readdir($handle)) !=false){
if($file === '.' || $file === '..')
continue;
echo '<div class="panorama round" style=" width:1200px; height:500px; padding:10px ;background-color:#444; position: relative;">';
echo '<div class="panorama-view">';
echo '<div class="panorama-container">';
echo '<img src="uploadedimg/'.$file.'" data-width="4077" data-height="500" alt="Panorama" />';
echo '</div>';
echo '</div>';
echo '</div>';
}
closedir($handle);
}
}
} ?>
答案 0 :(得分:1)
您收到 Uncaught ReferenceError: jQuery is not defined
或 Uncaught ReferenceError: $ is not defined
错误(如您在帖子评论中的共享screenshot中所示) )因为你没有在项目中包含jQuery库。
两个错误都是相同的,并指出了与上述相同的问题。
请注意,您不能在不使用jQuery库的情况下使用 panorama360 ,因为它(jQuery库)是必需的依赖项。
要在项目中包含jQuery库,您有两(2)个主要选项;之一:
您可以通过将其包含在项目中从内容投放网络(CDN)使用它,如下面的代码段所示,
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
,或者
直接从您存储的位置下载和引用它
<script src="/path/to/jquery-3.1.1.min.js"></script>
最后一个选项与上面提到的两个相结合,使用一个作为优雅的故障转移;这是插图:
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
<script>window.jQuery || document.write('<script src="path/to/jquery-3.1.1.min.js"><\/script>')</script>
(通过上述内容,您可以通过从CDN中使用jQuery库来使用jQuery库,并在以后失败时自动加载服务器上的版本。更多详细信息here)< / em>的
请注意,jQuery库声明应该在引用panorama360 JavaScript资源之前发生,这一点非常重要。之一:
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
<script src="/js/jquery.mousewheel.min.js"></script>
<script src="/js/jquery.panorama360.js" ></script>
如果您选择使用PHP echo()
功能来处理文件包含,请使用单引号或转义双引号。 ...更多详情here。
所以,你应该做这样的事情:
<?php
echo "<link rel='stylesheet' href='/css/panorama360.css'>";
echo "<script
src='https://code.jquery.com/jquery-3.1.1.min.js'
integrity='sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8='
crossorigin='anonymous'></script>";
echo "<script src='/js/jquery.mousewheel.min.js'></script>";
echo "<script src='/js/jquery.panorama360.js'></script>";
echo "<script>$(function(){ $('.panorama-view').panorama360(); });</script>";
在不使用PHP的原始HTML方式的情况下引用您的资源,如下面的评论中讨论的那样,
<?php
// Should you want to run any PHP codes before referencing your resources,
// you may do so here.
// Remember: you MUST close this section as below this comments so as to
// mark the end of your PHP code
?>
<link rel="stylesheet" href="/css/panorama360.css">
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
<script src="/js/jquery.mousewheel.min.js"></script>
<script src="/js/jquery.panorama360.js"></script>
<script>$(function(){ $('.panorama-view').panorama360(); });</script>
<?php
// Here, other PHP codes
?>