jQuery,将.buttonset应用于尚未加载的元素

时间:2011-12-22 15:01:01

标签: ajax jquery jquery-widgets

我有以下代码很好地运作:

    $field2.on("change", "#selector", function(){
        $field2.load("./index.php?show-options=true", { value: $(this).val() }, function() {
        $("#options").buttonset();
        });
    });     

它加载#options div并应用按钮来锚定其中的标签。

有没有办法宣布

$("#options").buttonset();

加载#options div之前?

我查看了jQuery文档但没有成功,也发现了这个答案:

Apply jQuery UI widgets to ajax loaded elements

我认为可能会走上正轨,但还没有完全理解,也无法实现。

帮助表示感谢,谢谢。

1 个答案:

答案 0 :(得分:0)

执行以下操作:

$field2.on("change", "#selector", function(){
    $field2.load("./index.php?show-options=true", { value: $(this).val() }, function() {
      $field2.find("#options").buttonset();
    });
});

将$ field2中的所有选项元素放入按钮集(一旦内容更新)。

或者你也可以在dom上设置按钮:

$(function() { $("#options").buttonset(); });

<强>更新

jQuery选择器处理DOM中的元素(除非给定上下文),如果元素不在DOM中,那么不幸的是jQuery将无法直接影响它。如果加载然后调用buttonset导致FOUC(无格式内容的闪烁),您可以尝试以下操作:

$field2.on("change", "#selector", function() {
    $field2.empty();
    $.get("./index.php?show-options=true", { value: $(this).val() }, function(data) {
      var newContent = $(data);
      $("#options", newContent).buttonset();
      $field2.empty().append(newContent);
    });
});