jquery select2 .on("更改",函数(e)重置选项

Pra*_*nda 1 javascript jquery jquery-select2

我正在使用select2.

用法:如果值是"COUNTRY",我想向select2添加onchange事件,否则我想删除onchange事件,如下所示:

var reportLevel = getReportLevel();

if (reportLevel != "COUNTRY") {
    $("#selected_countries").on("change", function(e) {
        prepareGlidModel(e);
    });
} else {
    $("#selected_countries").on("change", function(e) {
    });
}
Run Code Online (Sandbox Code Playgroud)

问题:即使调用了else块,也无法删除onchange事件.根据reportLevela中选择的值调用事件dropdown.

小智 9

尝试以下:

var reportLevel = getReportLevel(),
    // by default unbind/off change event
    $select = $("#selected_countries").off("change");

// and if country then bind it
if (reportLevel == "COUNTRY") {
   $select.on("change", function(e) {
       alert("you selected :" + $(this).val());
   });
}
Run Code Online (Sandbox Code Playgroud)

这里的工作示例:http://jsfiddle.net/JB89B/1/