jQuery для запуска после загрузки PHP

Я работаю над сайтом, используя платформу Big Commerce. Страница корзины состоит из фрагментов, называемых PHP. У меня нет доступа к файлам PHP. Что мне нужно сделать, это получить значение тега span (с заданным индексом) и получить его. Я использую это значение, чтобы определить, каким должно быть мое текстовое поле minQTY. Я хочу, чтобы мой код запускался после загрузки страницы. Однако мой сценарий не работает на странице.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">

$(document).load(function(){
            $("a.CustomizeItemLink");
            $changeIndex = $("a.CustomizeItemLink").index('a.CustomizeItemLink');
            $change = $("a.CustomizeItemLink").length;
            $productTestArray = ['/american-boxwood-buxus/', '/lavander-crape-myrtle-lagerstroemia-fs/']
            $productLength = $productTestArray.length;

            for(i=0, j=0; i<=$change, j<=$productLength; i++, j++){
            $productTest = "http://www.tnnursery.net"; 
            $productTestValue = $("td.blah a").get(i);                    
            $productTest = "http://www.blah.net" + $productTestArray[j]; 
            $MD = $productTestValue;
            $MS = $productTest;
            $minQTYArray = ['100','100','75','50','25','20','15'];
            $cartSpanValue = $(".productAttributes td span:eq("+i+")").text();            
            $rdTestArray2 = ['6-12','12-18',"1-2'","2-3'","3-4'","4-5'","5-6'"];
            $arr2Test = jQuery.inArray($cartSpanValue, $rdTestArray2);
            $minQTYValue = $minQTYArray[$arr2Test];
            $cartQtyValue = $(".qtyInput:eq("+i+")").val();

            if($MD != $MS){

            }
            else{    
                if($cartQtyValue >= $minQTYValue){

                }
                else{
                    if ($arr2Test == -1){
                    $cartQtyValue = $(".qtyInput:eq(" + i + ")").val('100');    
                    }
                    else{
                    $cartQtyValue = $(".qtyInput:eq(" + i + ")").val($minQTYValue);  
                    alert($cartQtyValue);
                    }
                }
            }
        }

    });
});
});
    </script>

    </td>
    <td class="ProductName" colspan="1">
        <a href="http://www.blah.net/blah-blah-blah/">Item Name1</a><table class="productAttributes" cellpadding="0" cellspacing="2">
<tr>
<td>
    <label>Plant&#8203; Size&#8203;s:</label>
</td>
<td>
    <span>12-18&#8203;&quot;</span>
</td>

+ Изменить
28500 ()

        <div style="display: none" class="WrappingOptions">
            Gift Wrapping:

            <a href="#" onclick="Cart.ManageGiftWrapping('4eea86d587825');" style="">Add</a>
            <span style="display: none">
                (<a href="#" onclick="Cart.ManageGiftWrapping('4eea86d587825');">Change</a> or <a href="cart.php?action=remove_giftwrapping&amp;item_id=4eea86d587825" onclick="return Cart.RemoveGiftWrapping();">Remove</a>)
            </span>
            <br />
            <span style="display: none">
                Gift Message:

            </span>
        </div>
    </td>
    <td align="center" class="CartItemQuantity">
        <span style="padding: 0; margin: 0;"><input type="text" size="2" name="qty[4eea86d587825]" id="text_qty_4eea86d587825" class="qtyInput quantityInput" value="50"/></span>

        <div style="">
            <a href="cart.php?action=remove&amp;item=4eea86d587825" onclick="Cart.RemoveItem('4eea86d587825'); return false;" class="CartRemoveLink">Remove</a>
        </div>
    </td>

Мой вопрос заключается в том, как настроить мой jQuery для запуска после загрузки PHP на страницу?

3 ответа

Решение

Попробуйте заменить $(document).load с $(window).load,

Во-первых, вы должны восстановить $(document).ready(function(){});

Во-вторых, php запускается на стороне сервера, и, следовательно, до загрузки самой страницы. Вы не должны беспокоиться о том, что ваш JavaScript будет работать до PHP.

Наконец, я думаю, что причина того, что ваш код не работает, может быть из-за синтаксических ошибок. Если вы скопировали свой код напрямую, то у вас есть несколько концовок для функции открытия. Я не уверен, было ли это намеренно или нет, но у вас есть три набора закрытия для функции загрузки, когда это не нужно.

Также эта строка:

$productTestArray = ['/american-boxwood-buxus/', '/lavander-crape-myrtle-lagerstroemia-fs/']

Не имеет точку с запятой, заканчивающуюся утверждением. Сделайте эти изменения и посмотрите, начинает ли ваш код работать правильно.

РЕДАКТИРОВАТЬ: Кроме того, в вашем цикле For вы определяете i и j. Это почему? Я считаю, что они всегда будут одинаковыми, как у вас. Я что-то пропустил?

$(document).ready(function(){
//your code here

});
Другие вопросы по тегам