title: Why can't I get this simple Knockout code to work?
body: <p>I am new to Knockout and am learning how MVVM works. Here is a code snippet of my code.</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false">
  <div class="snippet-code">
  <pre class="snippet-code-js lang-js prettyprint-override"><code>$(function () {
    var viewModel = {
      name: ko.observable("Bob"),
      changeName: function () {
        this.name("Steve");
      },
      nameVisible: ko.observable(true);
    };
  
    ko.applyBindings(viewModel);
  });</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"&gt;&lt;/script&gt;
  &lt;script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.3.0/knockout-debug.js"&gt;&lt;/script&gt;
  
  Name:
  &lt;input type="text" data-bind="value: name, valueUpdate: 'afterkeydown'" /&gt;
  &lt;input type="checkbox" data-bind="checked: nameVisible" /&gt;
  &lt;p&gt;Hello, &lt;span data-bind='text: name, visible: nameVisible'&gt;&lt;/span&gt;
  &lt;/p&gt;
  &lt;button data-bind='click: changeName'&gt;Change Name&lt;/button&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p>I am attempting to data-bind the View to the ViewModel. The text in the input field should appear when the checkbox is selected. The button should also update the input field to 'Steve' when clicked (only when the checkbox is checked). What is going wrong?</p>