3

我的代码需要帮助:

我正在动态添加元素,创建新元素需要这些函数有一个名为 CHOSEN 的插件,但是在创建后创建它们不起作用我尝试重新运行该函数以将选择的属性添加到新元素。

ajaxchosen = function () {
    $("select").each(function(index, element){
        $(element).ajaxChosen(
                   { method: "GET", 
                     url: $(element).attr("source"),
                     dataType: "json"
                   }, function(data){ 
                       var terms; 
                       terms = {};
                       $.each(data, function (i, val) {
                           return terms [i] = val;
                       });
                       return terms;
                   });
    });
};

$ (element).closest("form").find(".nested-field:visible:last").append(template.replace(regexp, new_id));
ajaxchosen();
4

2 回答 2

7

如果你修改了一个已经使用 Chosen 转换的 select 的内容,你需要调用

$("#form_field").trigger("liszt:updated");

或(取决于您使用的版本)

$("#form_field").trigger("chosen:updated");

在如此选择的修改之后,在该选择上重新加载自身并更新值。因此,您直接在选择(而不是选择的 div)上使用一些 ajax 添加值,然后调用该方法。

检查文档:http ://harvesthq.github.com/chosen/

于 2012-10-30T16:55:43.090 回答
3

liszt:updated已弃用。

采用

$("#form_field").trigger("chosen:updated");
于 2013-10-21T08:49:41.803 回答