html 在 Kendo UI 中使用 ajax 追加后单击不起作用

Click not working after html append using ajax in Kendo UI

我在 kendo UI 工作,我在为稍后加载的 HTML 内容提供 ng-click 选项时遇到问题。

这里我添加了一些与我所做的相关的代码:

HTML:

<div ng-controller="KendoCtrl">
  <div class="show_html_here"><!-- Ajax inserts HTML here --></div>
</div>

HTML & ng-click in RED box & which is working:

<div ng-model="open_Filter" ng-click="onClick('open_Filter')">
  <span>Total Open</span>
  <span>0</span>
</div>

HTML & ng-click in ajax HTML & 这不起作用:

<ul>
  <li ng-model="stageFilter" ng-click="onClick('stageFilter')">PRT - 1</li>
  <li ng-model="stageFilter" ng-click="onClick('stageFilter')">PRT - 2</li>
  <li ng-model="stageFilter" ng-click="onClick('stageFilter')">PRT - 3</li>
  <li ng-model="stageFilter" ng-click="onClick('stageFilter')">PRT - 4</li>
</ul>

单击任何包含 ng-clickli 时,警报不起作用。

我也尝试过将 ajax HTML 部分直接添加到我的视图页面而没有 ajax,此时点击工作正常。

Ajax:

$('body').on('change', '#dropdown_id', function(){
  $.post('controller/htmlsection', {'id': $this.val()}, function(data) {
    $('.show_html_here').html(data.html);
  });
});

Kendo/Angular 代码:

angular.module("KendoApp", ["kendo.directives"]).controller("KendoCtrl", function ($scope, $http) {
  ...
  $scope.onClick = function(param) {
    alert(param); // Not working while we click in a section which is loaded in ajax(eg.: PRT-4)
  }
  ...
});

alert(param); inside $scope.onClick 当我们点击加载到 ajax(例如:PRT-4)到 div 的部分时,class show_html_here。我认为这是因为 ajax 部分稍后加载 Kendo/Angular 代码的原因。 如果你知道一些解决方案,请帮助我。

我没有从 Stack 获得解决方案,需要找到解决我的问题的方法。我找到了问题的解决方案,不知道它是否正确,但它解决了我的问题。

HTML更新:

<ul>
  <li class="customFilter" ng-model="stageFilter">PRT - 1</li>
  <li class="customFilter" ng-model="stageFilter">PRT - 2</li>
  <li class="customFilter" ng-model="stageFilter">PRT - 3</li>
  <li class="customFilter" ng-model="stageFilter">PRT - 4</li>
</ul>

Kendo/Angular 代码:

// Custom Click
$('body').off('click', '.customFilter').on('click', '.customFilter', function () {
  if ($(this).hasClass('active')) {
    $(this).removeClass('active');
    active = 0;
  } else {
    $(this).addClass('active');
    active = 1;
  }
  $scope.onClick('stageFilter', active); // Click was working as required
});

自定义点击按我的要求正常工作,因为点击仅在 ajax 中的 HTML 加载后发生。

我不是说这个解决方案是正确的方法,但这是我这次的问题。

接受新的或适当的解决方案