После того, как все $ (документ) .ready () работали, там событие для этого?

Мне включали first.js файл в страницу index.php, которые имеют что-то вроде этого:

$(function(){

    $("#my_slider").slider("value", 10);

});

И их в index.php я имею, некоторые динамично создали slidders:

<?php function slidders($config, $addon)
{
    $return = '
    <script type="text/javascript">
        $(function() {
            $("#slider_'.$addon['p_cod'].'").slider({
            min: '.$config['min'].',
            max: '.$config['max'].',
            step: '.$config['step'].',
            slide: function(event, ui) {
                $("#cod_'.$addon['p_cod'].'").val(ui.value);
                $(".cod_'.$addon['p_cod'].'").html(ui.value+"'.@$unit.'");
            },
            change: function(event, ui) { 
                $("#cod_'.$addon['p_cod'].'").change();
            }
        });
            $("#cod_'.$addon['p_cod'].'").val($("#slider_'.$addon['p_cod'].'").slider("value"));
            $(".cod_'.$addon['p_cod'].'").html($("#slider_'.$addon['p_cod'].'").slider("value")+"'.@$unit.'");
    });
    </script>';
    return $return;
} ?>

Проблема, потому что мои index.php ползунки инстанцируют после моего first.js я не могу настроить значение там, есть ли какое-либо событие как "после того, как все $ (документ) .ready () работали", который я могу использовать в first.js для управления ползунками, созданными в index.php?

59
задан David Espart 9 March 2015 в 11:01
поделиться

3 ответа

Не знаю, как определить, когда сработала последняя функция $(document).ready(), но $(window).load() срабатывает после $(document).ready()

74
ответ дан 24 November 2019 в 18:04
поделиться

Лучше добавить уникальный класс к своим ползункам, чем #my_slider, поскольку он будет срабатывать только для элемента с id = my_slider.

Если вы хотите иметь такую ​​же функциональность, вы должны проверить .live из jquery, она добавит те же функции в элементы, которые добавляются после привязки.

Если это не сработает для вас, то при добавлении новых ползунков вам придется просмотреть их в DOM и вызвать необходимую функцию.

0
ответ дан 24 November 2019 в 18:04
поделиться

Одна из целей функции jQuery $ (document) .ready () заключается в том, чтобы стандартное событие javascript window.onload не запускалось до тех пор, пока не будет загружено все на странице (включая изображения и т. Д.) .), хотя функции могут начать работать задолго до этого. Итак, $ (document) .ready () запускается, как только построена иерархия DOM.

С учетом этого можно было бы запустить сценарий «после всего остального» при загрузке страницы.Однако это не гарантирует, что все сценарии $ (document) .ready () будут выполнены.

Лучшим, но более сложным вариантом является создание функции, которая проверяет наличие ползунков и, если они не существуют, вызывает «setTimeout» для себя, чтобы она могла подождать несколько миллисекунд и повторить попытку.

(Чтобы ответить на ваш конкретный вопрос, нет, нет обратного вызова «после того, как все $ (document) .ready () выполнили».)

3
ответ дан 24 November 2019 в 18:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: