jquerymobile动态选择选项最终选择了错误的值

jquerymobile动态选择选项最终选择了错误的值,jquery,jquery-mobile,Jquery,Jquery Mobile,当我一步一步地浏览tap事件代码时,我看到了我期望的确切行为(将ddlValues设置为正确的selected选项),但是在我的代码之后运行事件冒泡代码之后,每次都将selected选项设置回第一个选项。 这里是页面中所有的代码,只显示了相关的代码,因为我已经检查过没有其他代码正在运行,因为事件被触发 此选择控件位于两页jquery mobile样式的第2页上。 在tap event,last event中,注意changepage方法,在该方法之后,我开始覆盖设置 找不到足够晚运行的事件来重置

当我一步一步地浏览tap事件代码时,我看到了我期望的确切行为(将ddlValues设置为正确的selected选项),但是在我的代码之后运行事件冒泡代码之后,每次都将selected选项设置回第一个选项。 这里是页面中所有的代码,只显示了相关的代码,因为我已经检查过没有其他代码正在运行,因为事件被触发

此选择控件位于两页jquery mobile样式的第2页上。 在tap event,last event中,注意changepage方法,在该方法之后,我开始覆盖设置

找不到足够晚运行的事件来重置该值,因为这样可以解决该问题,因为我在全局hdn控件中设置了要设置的值

  <script>
    $(document).ready(function () {
      function GetPricing(cardid) {
        var prices = $('#ddlValues');
        var cardp = {};
        cardp.cardid = cardid;
        var datax = JSON.stringify(cardp);
        $.ajax({
          type: "POST",
          url: "cardedit.aspx/GetPricing",
          data: datax,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (response) {
            prices.empty();
            $.each(response.d, function (index, item) {
              prices.append(new Option(item.Name, item.ID));
            });
            prices.selectmenu("refresh");
          },
          error: function () {
            alert("Failed to load data");
          }
        });
      }
      function GetDetail(id) {
        var cardd = {};
        cardd.id = id;
        var datax = JSON.stringify(cardd);
        $.ajax({
          type: "POST",
          url: "cardedit.aspx/GetDetail",
          data: datax,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (response) {
            var vals = response.d;
            $('#txtNumber').val(vals[0]);
            $('#txtPrice').val(vals[1]);
            $('#txtTrade').val(vals[2]);
            $('#txtSell').val(vals[3]);
            $('#txtWholesale').val(vals[4]);
          },
          error: function () {
            alert("Failed to load data");
          }
        });
      }
      function GetDetailx(id) {
        var cardd = {};
        cardd.id = id;
        var datax = JSON.stringify(cardd);
        $.ajax({
          type: "POST",
          url: "cardedit.aspx/GetDetailx",
          data: datax,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          success: function (response) {
            var vals = response.d;
            $('#txtPrice').val(vals[0]);
            $('#txtTrade').val(vals[1]);
            $('#txtSell').val(vals[2]);
            $('#txtWholesale').val(vals[3]);
          },
          error: function () {
            alert("Failed to load data");
          }
        });
      }
      $('#ddlCards').change(function () {
        var cardid = $(this).attr('value');
        GetPricing(cardid);
      });
      $('#ddlValues').change(function () {
        var priceid = $(this).attr('value');
        $('#hdnPriceid').val(priceid)
        GetDetailx(priceid);
      });
      $('.cardxx').on('tap', function () {
        var x = $(this);
        var id = x.data("id");
        $('#hdnCardid').val(id);
        var cardid = x.data("cardid");
        var priceid = x.data("priceid");
        $('#hdnPriceid').val(priceid);
        var pagex = $('#page2');
        $.mobile.changePage(pagex);
        var cards = $('#ddlCards');
        cards.val(cardid);
        cards.selectmenu("refresh");
        GetPricing(cardid);
        GetDetail(id);
        var pricexs = $('#ddlValues');
        pricexs.val(priceid);
        pricexs.selectmenu("refresh", true);
        event.stopPropagation();
      });
    });
  </script>

$(文档).ready(函数(){
函数GetPricing(cardid){
风险价值价格=$(“#价值”);
var cardp={};
cardp.cardd=cardd;
var datax=JSON.stringify(cardp);
$.ajax({
类型:“POST”,
url:“cardedit.aspx/GetPricing”,
数据:datax,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(响应){
价格。空();
$.each(response.d,函数(索引,项){
append(新选项(item.Name,item.ID));
});
价格。选择菜单(“刷新”);
},
错误:函数(){
警报(“加载数据失败”);
}
});
}
函数GetDetail(id){
var cardd={};
cardd.id=id;
var datax=JSON.stringify(cardd);
$.ajax({
类型:“POST”,
url:“cardedit.aspx/GetDetail”,
数据:datax,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(响应){
var VAL=响应。d;
$('#txtNumber').val(val[0]);
$('#txtPrice').val(val[1]);
$('#txtrade').val(val[2]);
$('#txtSell').val(val[3]);
$('#txt').val(val[4]);
},
错误:函数(){
警报(“加载数据失败”);
}
});
}
函数GetDetailx(id){
var cardd={};
cardd.id=id;
var datax=JSON.stringify(cardd);
$.ajax({
类型:“POST”,
url:“cardedit.aspx/GetDetailx”,
数据:datax,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:功能(响应){
var VAL=响应。d;
$('#txtPrice').val(val[0]);
$('#txtrade').val(val[1]);
$('#txtSell').val(val[2]);
$('#txt').val(val[3]);
},
错误:函数(){
警报(“加载数据失败”);
}
});
}
$('#ddlCards')。更改(函数(){
var cardid=$(this.attr('value');
GetPricing(cardid);
});
$('#ddlValues')。更改(函数(){
var priceid=$(this.attr('value');
$('hdnPriceid').val(priceid)
GetDetailx(priceid);
});
$('.cardxx')。打开('tap',函数(){
var x=$(此);
var id=x.数据(“id”);
$('hdnCardid').val(id);
var cardid=x.data(“cardid”);
var priceid=x.data(“priceid”);
$('hdnPriceid').val(priceid);
变量pagex=$(“#page2”);
$.mobile.changePage(pagex);
var卡=$(“#ddlCards”);
卡.瓦尔(卡迪德);
卡片。选择菜单(“刷新”);
GetPricing(cardid);
获取详细信息(id);
var pricexs=$('#ddlValues');
pricexs.val(priceid);
pricexs.选择菜单(“刷新”,true);
event.stopPropagation();
});
});
在我的代码运行之后,我看到jquery和jquerymobile代码正在运行,但对它的理解还不够,无法理解为什么要将DDL值重置回第一个选项

如果我将set-select选项延迟四分之一秒,问题就解决了,但是 看起来太粗鲁了