关于DOM的更改,需要触发一个函数,jQuery

时间:2014-04-11 09:47:05

标签: jquery dom

标题解释问题我很好。在ajax成功后,元素再次加载到页面上!我的所有操作都必须再次完成!但我似乎无法弄清楚这一点。

以下是代码:

function fixed_trigger(){
  if($("#resource_fixed").prop("checked")){
    $("div[data-name='fixed_from']").show();
    $("div[data-name='fixed_to']").show();
  } else {
    $("div[data-name='fixed_from']").hide();
    $("div[data-name='fixed_to']").hide();
  }
}

function defaults(){
  if($("#resource_formula_type").val() != undefined || null || "" ){
    var types = $("#resource_formula_type").val().split(",");
    for(var i=0; i<types.length; i++){
      $("#formula_type option[value='"+types[i]+"']").prop("selected", true);
    }
  }
  fixed_trigger();
}

$(document).ready(defaults());
$(document).on("change", "#resource_fixed", function(){
  fixed_trigger();
});
$(document).on("change", "#formula_type", function(){
  var string = $(this).val().toString();
  $("#resource_formula_type").val(string);
});

在文档就绪时,我触发一个隐藏一些元素的函数,但是在再次加载表单之后我需要再次触发defaults(),我无法弄清楚如何。请帮忙。谢谢!

2 个答案:

答案 0 :(得分:0)

改变这个:

$(document).ready(defaults());

到此:

$(document).ready(defaults);

您无需在()回调中添加ready函数名称。

答案 1 :(得分:0)

哦,我明白了。可能没有人会在这里帮助我,我们的项目由第3方创建的CMS创建了CMS功能,方法是绑定元素上的侦听器,并在ajax加载内容后,如果更改元素或者元素的子元素比它更改触发。我在身体上堆叠这个功能,它现在工作得很好。

$("body").on("contentloaded", function(){});