添加产品时,我收到Uncaught TypeError: $(...).button is not a function
此错误。我调试它你可以在root上看到按钮但仍然可以。实际上这个opencart 2.1功能,它正常工作除了一个以外的所有页面。那么任何人都可以指导我解决方案。
<input type="button" class="letTry" value="thisOne" />
$('.letTry').on('click',function(){
cart.add(51,3);
});
var cart = {
'add': function(product_id, quantity) {
$.ajax({
url: 'index.php?route=checkout/cart/add',
type: 'post',
data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
dataType: 'json',
beforeSend: function() {
$('#cart > button').button('loading');
},
complete: function() {
$('#cart > button').button('reset');
},
success: function(json) {
//alert('TestUpdateTEST');
$('.alert, .text-danger').remove();
if (json['redirect']) {
location = json['redirect'];
}
if (json['success']) {
//if(personalizePage=='personalize'){
// alert(personalizePage);
//}
if(is_home=='notHome'){
$('#content').parent().before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');
}
if(is_home=='homepage'){
$('#homeNoti').before('<div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div>');
}
//$('#homeNoti').before('<div id="content"><div class="container"><div class="alert alert-success"><i class="fa fa-check-circle"></i> ' + json['success'] + ' <button type="button" class="close" data-dismiss="alert">×</button></div></div></div>');
// Need to set timeout otherwise it wont update the total
setTimeout(function () {
$('#cart > button').html('<span id="cart-total">' + json['total'] + '</span>');
}, 100);
setTimeout(function () {
$('.basket').html('<span class="number">' + json['countItems'] + '</span>');
}, 100);
setTimeout(function () {
$('.responsive-basket').html('<span class="responsive-number">' + json['countItems'] + '</span>');
}, 100);
if(is_home=='notHome'){
$('html, body').animate({ scrollTop: 0 }, 'slow');
}
if(is_home=='homepage'){
$('html, body').animate({ scrollTop: 550 }, 'slow');
}
$('#cart > ul').load('index.php?route=common/cart/info ul li');
}
},
error: function(xhr, ajaxOptions, thrownError) {
alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
}
});
}
}
<div id="cart" class="btn-group btn-block">
<button type="button" data-toggle="dropdown" data-loading-text="<?php echo $text_loading; ?>" class="btn btn-inverse btn-block btn-lg dropdown-toggle"><i class="fa fa-shopping-cart"></i> <span id="cart-total"><?php echo $text_items; ?></span></button>
<ul class="dropdown-menu pull-right home-page-cart">
<?php if ($products || $vouchers) { ?>
<li>
<table class="table table-striped">
<?php foreach ($products as $product) { ?>
<tr>
<td class="text-center"><?php if ($product['thumb']) { ?>
<a href="<?php echo $product['href']; ?>"><img src="<?php echo $product['thumb']; ?>" alt="<?php echo $product['name']; ?>" title="<?php echo $product['name']; ?>" class="img-thumbnail" /></a>
<?php } ?></td>
<td class="text-left"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a>
<?php if ($product['option']) { ?>
<?php foreach ($product['option'] as $option) { ?>
<br />
- <small><?php echo $option['name']; ?> <?php echo $option['value']; ?></small>
<?php } ?>
<?php } ?>
<?php if ($product['recurring']) { ?>
<br />
- <small><?php echo $text_recurring; ?> <?php echo $product['recurring']; ?></small>
<?php } ?></td>
<td class="text-right">x <?php echo $product['quantity']; ?></td>
<td class="text-right"><?php echo $product['total']; ?></td>
<td class="text-center"><button type="button" onclick="cart.remove('<?php echo $product['cart_id']; ?>');" title="<?php echo $button_remove; ?>" class="btn btn-danger btn-xs"><i class="fa fa-times"></i></button></td>
</tr>
<?php } ?>
<?php foreach ($vouchers as $voucher) { ?>
<tr>
<td class="text-center"></td>
<td class="text-left"><?php echo $voucher['description']; ?></td>
<td class="text-right">x 1</td>
<td class="text-right"><?php echo $voucher['amount']; ?></td>
<td class="text-center text-danger"><button type="button" onclick="voucher.remove('<?php echo $voucher['key']; ?>');" title="<?php echo $button_remove; ?>" class="btn btn-danger btn-xs"><i class="fa fa-times"></i></button></td>
</tr>
<?php } ?>
</table>
</li>
<li>
<div>
<table class="table table-bordered">
<?php foreach ($totals as $total) { ?>
<tr>
<td class="text-right"><strong><?php echo $total['title']; ?></strong></td>
<td class="text-right"><?php echo $total['text']; ?></td>
</tr>
<?php } ?>
</table>
<p class="text-right"><a href="<?php echo $cart; ?>"><strong><i class="fa fa-shopping-cart"></i> <?php echo $text_cart; ?></strong></a> <a href="<?php echo $checkout; ?>"><strong><i class="fa fa-share"></i> <?php echo $text_checkout; ?></strong></a></p>
</div>
</li>
<?php } else { ?>
<li>
<p class="text-center"><?php echo $text_empty; ?></p>
</li>
<?php } ?>
</ul>
</div>
答案 0 :(得分:4)
.button()
函数,它是一个JqueryUI方法。
您确定在此页面中包含JqueryUI吗?
答案 1 :(得分:0)
还要确保页面上您没有使用旧的js文件。 我有类似的问题。
并发现在2.1.1页的顶部使用了js文件。 还有一点,那里还有1.11.0 js文件。
因此,在删除1.11.0后,它开始工作了。 由于1.11.0不支持.button