我有以下代码运行良好:
$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文档没有成功,也找到了这个答案:
为ajax加载的元素应用jQuery UI小部件
我认为它可能是正确的,但我还没有完全理解它,也没有设法实现。
感谢您的帮助。
做以下事情:
$field2.on("change", "#selector", function(){
$field2.load("./index.php?show-options=true", { value: $(this).val() }, function() {
$field2.find("#options").buttonset();
});
});
将$field2中的所有选项元素变成一个按钮集(一旦内容更新)。
或者你也可以将按钮设置为dom ready:
$(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);
});
});