javascript - 为什么delegate()这个方法的外部参数有时候可以修改,有时候修改不了
PHPz
PHPz 2017-04-11 13:05:41
[JavaScript讨论组]
                    var delParent;
                    var testI = 10;
                    $(".z_photo").delegate(".close-upimg", "click", function(event) {
                        event.stopPropagation();
                        $(".works-mask").show();
                        testI = 11;
                        delParent = $(this).parent();
                    });

                    $(".wsdel-ok").click(function() {
                        console.log(testI+"=====testi====")
                        $(".works-mask").hide();
                        var numUp = delParent.siblings().length;
                        if (numUp < imageNum + 1) {
                            delParent.parent().find(".z_file").show();
                        }
                        delParent.remove();
                    });        

其中.close-upimg 有时候是动态生成的,有时候是页面渲染出来的。现在的情况是:先在页面渲染出来的.close-upimg 这个类点击事件执行,那么执行$(".wsdel-ok").click事件,testI的值就可以改变。要是先动态添加生成的.close-upimg,那么执行$(".wsdel-ok").click事件,testI的值就并没有改变,还是需要先去执行一下页面渲染出来的.close-upimg事件,方可改变。ps(以上代码是封装插件里面的一段,外部调用的方法,不知道是不是这个影响…………)

PHPz
PHPz

学习是最好的投资!

全部回复(1)
天蓬老师

jq 3.0以上版本 移除 delegate 方法,建议 你改成 on.

如果你的 .wsdel-ok 也是 动态生成的,也得写成 $(".XXX").on(".wsdel-ok", "click", function(event) {}

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

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