【问题标题】:Jquery selector not working after knockout.js applyBindings()在knockout.js applyBindings()之后Jquery选择器不起作用
【发布时间】:2016-05-12 01:21:25
【问题描述】:

我有几个表单输入:

<input data-bind="value:someKOObservable" />

我想在数据绑定事件之后使用 Jquery 选择器访问这些。我有以下代码:

$(document).ready(function () {
    ko.applyBindings(new ViewModel());
    console.log("Found " + $("input").length + "  inputs.");

});

由于某种原因,它没有找到任何输入字段,但如果我删除了 applyBindings,它就会找到所有输入字段。

如何在 ko.applyBindings() 之后使用 Jquery 选择这些输入?

【问题讨论】:

  • 在 FF17 或 IE8 中运行这个没问题:jsfiddle.net/8gBNF/1
  • 你说得对,它工作正常。我的问题是输入是用 AJAX 加载的,所以我只需要绑定到 $(document).ajaxComplete 事件而不是 $(document).ready 事件。感谢您的帮助!

标签: jquery knockout.js


【解决方案1】:

我在使用 'with' 绑定时也看到过这种情况。删除 with 绑定应该可以修复它。

另一种处理方法是创建自定义绑定。一旦准备好进行 DOM 处理,它将接收更新调用。

   ko.bindingHandlers.myCustomBinding = {
    update: function(element, valueAccessor) {
   //I'm ready to update DOM
    } };

【讨论】:

    【解决方案2】:

    使用 jquery 委托。你可以找到更多信息here

    【讨论】:

      猜你喜欢
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2016-07-26
      • 1970-01-01
      • 2012-10-10
      相关资源
      最近更新 更多