Загрузка скрипта Javascript несколько раз

#php #jquery #ajax

#php #jquery #ajax

Вопрос:

У меня есть веб-страница со ссылкой на нее. Вы нажимаете на ссылку, и она генерирует таблицу внутри <div> с помощью AJAX. Вместе с таблицей, когда это <div> загружается, он запускает некоторый javascript, чтобы пользователь мог голосовать за / против элементов в таблице. Моя проблема в том, что если пользователь нажимает на ту же ссылку, чтобы восстановить <div> , он перезагружает ВТОРОЙ javascript, так что нажатие стрелки upvote один раз фактически запускает 1 дважды. Я не знаю, нужно ли вам просматривать какой-либо конкретный код, или есть какой-то общий способ исправить это, но вот более четкое изображение моей настройки файла.

mainpage.php по ссылке под названием «показать таблицу»

voting.js

getTable.php

* Нажмите «показать таблицу» на главной странице,getTable.php вызывается.

*getTable.php вызовы voting.js чтобы пользователь мог голосовать за элементы

* Нажмите «показать таблицу» еще раз и ЕЩЕvoting.js вызывается

* Теперь при нажатии стрелки upvote дважды проходит через код 1.

Что может сделать парень?

Комментарии:

1. Парень может опубликовать несколько //example code для одного…

2. С помощью ‘getTable.php вызывает voting.js ‘ вы имеете в виду, что он вставляет содержимое этого файла на страницу? Или он включает файл через тег script?

3. @pixelbobby Я могу включить код, но не уверен, что конкретно вы хотите увидеть. Я не хочу размещать 3 страницы кода, если вам это не нужно.

4. @jayp voting.js вызывается с файлом скрипта на getTable.php

5. вы должны предоставить более четкую концепцию, чтобы мы могли помочь вам более точно.

Ответ №1:

Вы могли бы включить voting.js на mainpage.php вместо getTable.php . Он был бы загружен один раз, но GetTable все равно мог бы его использовать.

Комментарии:

1. Я считаю, что это сработало :). По какой-то причине я думал, что попробовал это, и это не сработало, но теперь это работает. Спасибо!

Ответ №2:

Я предполагаю (предполагаю, потому что у нас нет кода), что вы добавляете данные в div. поэтому вместо того, чтобы добавлять его, просто напишите / перезапишите его.

Ответ №3:

то, как вы это объяснили, немного сбивает меня с толку, поэтому я собираюсь основывать свой ответ на том, с чем, по моему мнению, у вас возникла проблема.

Когда пользователь отправляет 1 голос, он отправляет его 2 раза

вы можете использовать переключатель, в основном, когда они нажимают, вызывайте, если ваш переключатель включен, сделайте это, если он не включен, установите его в положение включено и запустите код

     if(sitchMe == "on"){
        //dont run the code
    }
    else{
        //run it
        switch = "on"
    }