加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vs自带ajax:scriptmanager,回传引发的脚本无效问题

发布时间:2020-12-15 21:02:06 所属栏目:百科 来源:网络整理
导读:本来目的是想要局部刷新,然后动态添加右边“属性”到左边属性一列, 比如这样子一个界面 红框( 数据从 DB 中获取 ) 这一块用VS 自带的 AJAX 控件来实现局部刷新,但是这个时候全局的 jQuery 脚本就会无效,如果通过: this.ScriptManager1.ScriptPath=Serve

本来目的是想要局部刷新,然后动态添加右边“属性”到左边属性一列,

比如这样子一个界面

红框(数据从DB中获取)这一块用VS自带的AJAX控件来实现局部刷新,但是这个时候全局的jQuery脚本就会无效,如果通过:

this.ScriptManager1.ScriptPath=Server.MapPath("js/modalEditProductInfo.js");

来进行重新绑定脚本,那么会发现,局部刷新功能会失效,一旦下拉框进行回传,那么整个页面都会进行刷新。

好吧,反正我的目的只是想动态点击右边属性栏【操作】一列的【选择】选项来进行动态添加选择的属性到左边的【属性】中,比如”颜色:红色”就是动态添加实现的。

一开始我用livequery来实现,比如:

    $(".chooseProperty").livequery(function () {

        $(this).click(function () {
            var pdId = $(this).attr("pdId");                    //属性字典id
            var pdText = $.trim($(this).prev().prev().text());    //属性字典text
            var pdVal = $.trim($(this).prev().text());    //属性字典text

            var newHtml = "<div class='newProperty' ppId='" + pdId + "'><span class='chosenPropertyValText'>" + pdText + ":" + pdVal + "</span><span class='spanCancel'>×</span></div>";
            //            alert(newHtml)
            $("#chooseProperties").append(newHtml);
            //            alert(pdId + "@" + pdText + ":" + pdVal);
        
        });
    });


说livequery是每过20ms进行一次重新绑定,但是这里有个问题,就按照上面的代码来做的话,会发现一旦下拉框进行了回传,点击【选择】还是没有任何效果,但是这个时候如果点击左边的输入框(有js效果的,比如名称、品牌、价格我都是做了js验证的,blur会触发响应事件),然后再点击右边的【选择】,发现有js效果了,这点有点郁闷,待日后研究下原因。

最终用的方法是jQuery自带的live()方法,比如:

$(".chooseProperty").live("click",function () {

        
            var pdId = $(this).attr("pdId");                    //属性字典id
            var pdText = $.trim($(this).prev().prev().text());    //属性字典text
            var pdVal = $.trim($(this).prev().text());    //属性字典text

            var newHtml = "<div class='newProperty' ppId='" + pdId + "'><span class='chosenPropertyValText'>" + pdText + ":" + pdVal + "</span><span class='spanCancel'>×</span></div>";
            //            alert(newHtml)
            $("#chooseProperties").append(newHtml);
            //            alert(pdId + "@" + pdText + ":" + pdVal);

       
    });


但据说自带的live方法性能会有损耗。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读