php<ul>动态点击事件,jquery,动态元素_jQuery on()方法绑定动态元素的点击事件,jquery,动态元素,事件绑定 - phpStudy...

本文探讨了在ThinkPHP框架商城项目中,如何使用jQuery的on()方法为动态生成的购物车元素绑定点击事件。作者分享了遇到的问题,即事件绑定不生效,需刷新页面才能删除商品。通过详细代码和解决步骤,读者将理解如何确保实时更新购物车数据并修复on()方法的使用问题。
摘要由CSDN通过智能技术生成

jQuery on()方法绑定动态元素的点击事件

我正在做一个商城相关的项目,需要用到购物车。购物车的数据我存在了session里,但是在前端需要实时更新购物车的数据,所以动态的创建了元素。

在jquery中,要给动态元素绑定事件,我使用了on方法,但是该方法一直不生效,必须刷新页面才能删除购物车的数据,请大家帮忙看看。

项目使用的是ThinkPHP框架。

/**

*

* @authors tudouya (http://www.php101.cn/)

* @date 2015-04-08 01:37:39

* @version $1.0$

*/

namespace Mall\Controller;

use Think\Controller;

class CartController extends Controller {

public function __construct(){

parent::__construct();

// session(null);

if(!isset($_SESSION['cart'])){

$_SESSION['cart'] = array();

}

}

public function index(){

kd($_SESSION);

}

public function addItem(){

/*

* TODO --- 安全方面的考虑

*/

$good_id = intval(I('post.good_id'));

if(isset($_SESSION['cart'][$good_id])){

$_SESSION['cart'][$good_id]['good_num'] += 1;

$html = '';

$total_price = 0;

foreach($_SESSION['cart'] as $k=>$v){

$total_price += $v['good_price']*$v['good_num'];

$html .= '

'.'
'.$v['good_name'].'
'.$v['good_price'].'
';

}

$html .= '

商品数量:'.count($_SESSION['cart']) . ' Total: ¥'.$total_price.'
';

exit($html);

}

$good_name = I('post.good_name');

$good_price = I('post.good_price');

$good_image = I('post.good_image');

$good_num = intval(I('post.good_num'));

$good = compact('good_id', 'good_name', 'good_price', 'good_image', 'good_num');

$_SESSION['cart'][$good_id] = $good;

$html = '';

$total_price = 0;

foreach($_SESSION['cart'] as $k=>$v){

$total_price += $v['good_price']*$v['good_num'];

$html .= '

'.'
'.$v['good_name'].'
'.$v['good_price'].'
';

}

$html .= '

商品数量:'.count($_SESSION['cart']) . ' Total: ¥'.$total_price.'
';

exit($html);

}

public function removeItem(){

$good_id = intval(I('post.good_id'));

unset($_SESSION['cart'][$good_id]);

$html = '';

$total_price = 0;

foreach($_SESSION['cart'] as $k=>$v){

$total_price += $v['good_price']*$v['good_num'];

$html .= '

'.'
'.$v['good_name'].'
'.$v['good_price'].'
';

}

$html .= '

商品数量:'.count($_SESSION['cart']) . ' Total: ¥'.$total_price.'
';

exit($html);

}

}

?>

$total_price = 0;

foreach($_SESSION['cart'] as $k=>$v){

$total_price += $v['good_price']*intval($v['good_num']);

?>

<?php echo $v['good_name']; ?>

¥<?php echo $v['good_price']; ?>

商品数量: <?php echo count($_SESSION['cart']); ?>

Total: ¥<?php echo $total_price; ?>

$(function(){

remove_url = "{:U('mall/cart/removeitem')}";

$('#shoppingCartWrapper').find('.shoppingCartRemoveProductButton').on('click',function(){

good_id = $(this).prev().prev().val();

$.ajax({

'url': remove_url,

'type': 'post',

'data': {'good_id': good_id},

'success': function(data){

$('#shoppingCartButtons').prevAll().remove();

$('#shoppingCartButtons').before(data);

}

});

});

});

线上演示地址:

http://weixin.chenfw.me/mall/index

相关阅读:

Linux中调用setsockopt()返回-1,errno=92 求解决

NSStackBlock?的内存的一个疑问

commons-logging与log4j有什么区别与联系呢?

pyspider demo.pyspider.org正常运行 本地报错怎么办?windows 10系统

计算机时钟频率加快,有会有什么影响?

高并发实时系统涉及到多线程处理,这样合理么?

angualrjs在service中get请求能得到数据,但是为什么却无法返回到控制器当中使用?

jquery的css({'background':'red'}),是如何对{}进行处理的

nodejs终端命令行模式怎么退出

启动jetty容器报错,com.acme.TestFilter类找不到

半边结构读入obj文件 没有对应的半边

GB18030和UTF-8有啥区别

php curl出错,大神帮忙看下啊!

js中对象的属性不能关联其他属性值吗

intellij idea 参数可以自动提示么?

C#中 System.Windows.Documents.Table 控件如何设置垂直居中 ?

请教Mongoose嵌套数据Schema定义问题?

如何检测客户端被电信运营商劫持情况,然后做处理

bootstrap 网站上提供的 font awesome 对火狐不友好,怎么解决

shell 如何随机读取文件的一行?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值