2017-02-23 140 views
0

Я пытаюсь использовать darkbox и столкнулся с ошибкой, которую я не понимаю. Я показываю случайное изображение, когда страница загружается или обновляется. Эта часть работает нормально, появляются разные изображения. Однако консоль ошибок в отчетах Safari «Невозможно найти переменную: $, и ничего не происходит, когда я нажимаю на изображение. Линия, о которой идет речь, находится в скрипте ближе к концу, $ (document) .ready (function()Как исправить эту функцию javascript, чтобы исправить сообщение об ошибке

Это мой код. Я не очень хорошо на JavaScript, так что я не удивлюсь, если ответ очевиден для других. к сожалению о плохо отформатированный код.

<?php 
    $imageList = array(); 
    foreach(glob('randomimages/*.*') as $file) { 
    $imageList[] = $file; 
    } 
    $image = $imageList[array_rand($imageList)];  
?> 

<img src="<?php echo $image?>" id="darkboximg" data-darkbox="randomimages/<?php echo $image?>"> 
<div id="darkboximg" style="width:100%"></div> 
    <script> 
    $(document).ready(function(){ 
     $("#darkboximg").load("$image"); 
    }); 
    </script> 
</div> 
+1

Вы ввели jquery lib? –

+1

Ваш код jQuery кажется устаревшим. Вы получаете свой случайный файл через PHP. Таким образом, вы можете полностью удалить часть 'script'. – Sebastian

ответ

0

$ не является Java-переменной. $ является псевдоним JQuery, поэтому добавьте jquery перед вашим скриптом.

0

Убедитесь, что JQuery добавлен.

В $("#darkboximg").load("$image"); должны быть $("#darkboximg").load(<?php echo '"' . $image . '"' ?>);

Попробуйте следующее:

<!DOCTYPE html> 
<html> 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
</head> 
<body> 
    <?php 
    $imageList = array(); 
    foreach(glob('randomimages/*.*') as $file) { 
     $imageList[] = $file; 
    } 
    $image = $imageList[array_rand($imageList)]; 
    ?> 
    <img src="<?php echo $image?>" id="darkboximg" data-darkbox="randomimages/<?php echo $image?>"> 

    <div id="darkboximg" style="width:100%"></div> 
    <script> 
    $(document).ready(function(){ 
     $("#darkboximg").load(<?php echo '"' . $image . '"' ?>); 
    }); 
    </script> 
</body> 
</html> 
0
<?php 

    $imageList = array(); 
    foreach(glob('randomimages/*.*') as $file) { 
     $imageList[] = $file; 
    } 
    $image = $imageList[array_rand($imageList)]; 
    ?> 
    <script> 
    var image = <?php $imageList[array_rand($imageList)] ?>;   

</script> 
<img src="<?php echo $image?>" id="darkboximg" data-darkbox="randomimages/<?php echo $image?>"> 

      <div id="darkboximg" style="width:100%"></div> 


      <script> 
       $(document).ready(function(){ 
        $("#darkboximg").load(image); 
       }); 
      </script> 

      </div>`enter code here` 
0

Благодаря тем, кто предложил ответы. Проблема была на линии

<img src="<?php echo $image?>" id="darkboximg" data-darkbox="randomimages/<?php echo $image?>"> 

Изменено его

<img src="<?php echo $image?>" id="darkboximg" data-darkbox="<?php echo $image?>"> 

и теперь он работает.