kendo 文本更改事件的 dropDownList onclick 未触发

kendo dropDownList onclick of text change event not firing

我正在使用 kendo UI。 我有一个复选框的下拉列表。 onchange 事件在用户点击复选框时触发。但是当用户点击文本时事件没有触发。

在此先感谢您的帮助! -赛.

<script type="text/x-kendo-template" id="CheckboxTemplate">
    <li unselectable="on" class="k-item nowrap check-item">
        <input type="checkbox" name="#= text #" value="#= value #" class="check-input showcolname" checked />
        <span>#= text #</span>
     </li>
</script>


function populateDropdown() {           
        dropdown = $("#dropDownList").kendoDropDownList({
           dataTextField: "text",
           dataValueField: "value",
           template: $("#CheckboxTemplate").html(),
           dataSource: displayColumns,             
           placeholder: "Select...",
            select: function(e) {
                e.preventDefault();
            }
       }).data("kendoDropDownList");

        dropdown.list.width(250);

        dropdown.list.find(".check-input,.check-item").bind("click", function(e) {
            var $item = $(this);
            var $input;         
            if($item.hasClass("check-item")) {
                // Text was clicked
                $input = $item.children(".check-input");
                $input.prop("checked", !$input.is(':checked'));
            } else {
                // Checkbox was clicked
                $input = $item;                                   
            }                                    
            // Check all clicked?
            if($input.val() == "") dropdown.list.find(".check-input").prop("checked", $input.is(':checked'));
            syncColumns();

            e.stopImmediatePropagation();
        });

    }

函数 syncColumns(){

 $('.showcolname').each(function() {
              $(this).change(function(event) {
                   event.preventDefault();
                   var val = $(this).val();
                   var url = "${rootContext}${MyUrl}/"+val+"/"+this.checked;
                   var beforeSendCallBack = function() {};
                   var successCallback = function(data) {};
                   submitPost(url, beforeSendCallBack, successCallback, '','');
                  });
          });                   

}

然后您使用 Jquery 道具方法输入更改检查 属性 不会触发更改事件。所以你必须使用 Jquery 触发器手动触发它。有关详细信息,请查看此 question。另外你必须在触发之前注册事件绑定,或者使用 Jquery on.