javascript - jquery或者js事件绑定的问题
伊谢尔伦
伊谢尔伦 2017-04-10 16:50:13
[JavaScript讨论组]

现在想实现功能如下图

其中*个商品是异步更改的,用户点击加入购物车之后,页面不刷新,直接变化数量和金额。

现在不想要上面的黑框,只想把数量*扔到右边的小框里。

不想在用调用接口的方法实现。

我只是知道augular有类似的事件绑定,

不知道能不能通过js或者jquery实现这个小功能呢?

现在我只是把上面的黑长框display none 然后

    // 同步商品数量
$(function(){

    $('.cartnum').text($("#cart-total").text().substring(0,2));
   
})

这样只是拿到了个商品之间的,需要刷新才能同步。。

谢谢~

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(5)
大家讲道理

直接编写函数更新状态就行了

PHPz

就是在dom里B元素随着A元素的更改而更改,而A元素又是异步生成的,真个阶段页面不刷新

方法1 监听A异步执行方法完成,然后回调用修改B元素的函数
方法2 定时check页面上元素的变化-效率差些
例如

(function(){
    var bOrg=$(A).text();
    var checkInterval=setInterval(function(){
        var currentb=$(A).text();
        if(currentb!=bOrg){
            clearInterval(checkInterval);
            onBChanged(bOrg,currentb);
        }
    },1000);
    
    function onBChanged(oldValue,newValue){
        console.log('old:%s new:%s',oldValue,newValue);
    }
}());
巴扎黑

A元素是异步生成的,生成完就用回调函数执行渲染B元素的函数。
这不就行了?
或者无法用以上方法,那试试这个插件
jQuery.my – 实时的复杂的双向数据绑定

高洛峰
var dfd = Deferred();
//当*个商品异步更改时:
getNum(function (data) {
    //设置黑框的数据
    setNum(data);
    dfd.resolve(data);
});
dfd.done(function (data) {
    $el.trigger("MY_EVENT", {data:data});
});
//设置购物车数据
$el.on("MY_EVENT", function (e, data) {
    setNum(data);
});

主要就是应用trigger方法。

大家讲道理

两个方向考虑实现:
法一:在现有基础上实现(能和服务器同步,避免差异),在你顶部黑长框那获取个数代码中的回调函数处添加右侧购物车数字变化的代码,实现同步商品数量。

法二:在添加商品的按钮上绑定click事件,实现点击右侧购物车数字改变即可(未和服务器同步,有可能会出现差异)。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号