我遇到的问题非常简单,因为foreach循环的每次迭代都超过了之前的javascript变量,我不知道如何解决这个问题,然后在后面的函数中调用什么
foreach($variant->images as $image){
echo '
<div class="product-thmb-group">
<img id="hikashop_child_image_'.$char_id.'" class="hikashop_child_image" src="' . $this->image->uploadFolder_url . $image->file_path . '" alt="hikashop_child_image_' . $char_id . '" />
<span class="product-thmb-title">'.$char_name.'</span>
</div>
<script>
char_id = \''.$char_id.'\';
</script>';
}
<script>
jQuery('#hikashop_child_image_24').click(function() {
jQuery('#hikashop_product_characteristic_13').val(char_id).chosen().change();
jQuery('#hikashop_product_characteristic_13_chzn').trigger("chosen:updated");
});
</script>
答案 0 :(得分:0)
你可以在php中更新你的javascript变量。如果你提出ajax请求。或者只是用ajax重新加载你的页面。
答案 1 :(得分:0)
你可以通过生成GENERIC HTML来解决这个问题,并通过这样做来省略所有ID选择器和特定于标记的jQuery函数。它可能不完全是你所需要的,但你明白了。
foreach($variant->images as $image){
echo '
<div class="product-thmb-group">
<img class="hikashop_child_image" data-chzn=' . $char_id . ' src="' . $this->image->uploadFolder_url . $image->file_path . '" alt="hikashop_child_image_' . $char_id . '" />
<span class="product-thmb-title">'.$char_name.'</span>
</div>
}
JS:
jQuery('.product-thmb-group img').click(function() {
jQuery(this).val(char_id).chosen().change();
jQuery(this).data('chzn').trigger("chosen:updated");
});
答案 2 :(得分:0)
这就是我最终要做的事,但是感谢您输入
jQuery('*').click(function(e) {
var char_id = e.target.id;
e.stopPropagation();
var id = char_id.slice(-2);
jQuery('#hikashop_product_characteristic_13').val(id).chosen().change();
jQuery('#hikashop_product_characteristic_13_chzn').trigger("chosen:updated");
});