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​ Size​s:</label>
</td>
<td>
<span>12-18​"</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&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&item=4eea86d587825" onclick="Cart.RemoveItem('4eea86d587825'); return false;" class="CartRemoveLink">Remove</a>
</div>
</td>
Мой вопрос заключается в том, как настроить мой jQuery для запуска после загрузки PHP на страницу?
3 ответа
Во-первых, вы должны восстановить $(document).ready(function(){});
Во-вторых, php запускается на стороне сервера, и, следовательно, до загрузки самой страницы. Вы не должны беспокоиться о том, что ваш JavaScript будет работать до PHP.
Наконец, я думаю, что причина того, что ваш код не работает, может быть из-за синтаксических ошибок. Если вы скопировали свой код напрямую, то у вас есть несколько концовок для функции открытия. Я не уверен, было ли это намеренно или нет, но у вас есть три набора закрытия для функции загрузки, когда это не нужно.
Также эта строка:
$productTestArray = ['/american-boxwood-buxus/', '/lavander-crape-myrtle-lagerstroemia-fs/']
Не имеет точку с запятой, заканчивающуюся утверждением. Сделайте эти изменения и посмотрите, начинает ли ваш код работать правильно.
РЕДАКТИРОВАТЬ: Кроме того, в вашем цикле For вы определяете i и j. Это почему? Я считаю, что они всегда будут одинаковыми, как у вас. Я что-то пропустил?