.html属性更新一次

时间:2013-05-09 12:19:37

标签: jquery knockout.js

我有以下divs

<div id="daily" style="display:none">
   <p class="scheduleData">Every <input type="text" data-bind="value:EveryNPeriods"/> days      
</div>

<div id="weekly" style="display:none">
     <p class="scheduleData">Recur Every <input type="text" data-bind="value:EveryNPeriods" style="width:20px; "/>Week(s) on: </p><br/>
</div>

我有一个包含每日和每周选项的下拉菜单。在下拉列表更改时,我必须能够加载另一个div的内容。这是我的代码:

$("#dropdown").change(function () {
    var selected = $("#dropdown").val();
    if (selected == "Daily") {
        $("#DivToBeLoaded").html("");
        //$("#DivToBeLoaded").html($("#daily").html());
        $("#DivToBeLoaded").html($("#daily").contents());
    } else if (selected == "Weekly") {
        $("#DivToBeLoaded").html("");
        $("#DivToBeLoaded").html($("#weekly").contents());

});

问题是DivTobeLoaded只为每个下拉选项更新一次(例如,我第一次将其更改为Weekly,div会加载每周div的内容。如果我现在将其更改为Daily,它会被加载。但是然后当我切换回Weekly时,div不加载)。如果我使用.html而不是.contents它可以正常工作。但是如果我使用.html属性创建新节点,我将失去所有的敲除绑定。

2 个答案:

答案 0 :(得分:0)

使用'}'

关闭else循环
var selected = $("#dropdown option:selected").val();    //Try this also
if (selected == "Daily") {
    $("#DivToBeLoaded").html("");
    //$("#DivToBeLoaded").html($("#daily").html());
    $("#DivToBeLoaded").html($("#daily").contents());
} else if (selected == "Weekly") {
    $("#DivToBeLoaded").html("");
    $("#DivToBeLoaded").html($("#weekly").contents());
}  //end of else if

答案 1 :(得分:0)

Try with just if eles

$("#dropdown").change(function () {
    var selected = $(this).val();
    $("#DivToBeLoaded").html("");//Make blank here
    if (selected == "Daily") {
        $("#DivToBeLoaded").html($("#daily").contents());
    } else {
        $("#DivToBeLoaded").html($("#weekly").contents());
    }
});