- Windows 7
- VisualStudio 2015
- C# .Net MVC
- jquery 3.1.1
I must be missing something trivial.  I have a checkbox and on it I set a data element that holds the "id" number (index) of the item.  I have the on change method below
 1      $("input#item_IsHere").on("change",
 2          function () {
 3              var index = $(this).data("index");
 4              var checked = $(this).checked === true ? 1 : 0;
 5
 6              console.log("on change: " + $(this).checked);
 7              //...
 8          });
When I click the checkbox the change method fires and index is set as I expect. What I didn't expect is that the checked property of $(this) would be undefined.
I have also tried a fiddle for this but the fiddle worked :/
I am seeing this in Chrome and Firefox.  When the page loads I see the checkbox and bring up the developer tools debugger.  In the debugger I set a breakpoint on the console.log (lise 6).  When I click the checkbox it runs to the breakpoint and waits.  I can hover over the first $(this) (line 3) and I can see that the checked property is set to true in this case.
The issue is that the value of var checked ends up being 0 and the result of the console.log is
    on change: undefined
Oh, I've also done the ternary operator on line 4 as
    var checked = $(this).checked ? 1 : 0;
and
    var checked = $(this).is(":checked") ? 1 : 0;
and
    if ($(this).checked) {
        checked = 1;
    } else {
        checked = 0;
    }
with the same results.
What am I not seeing?
 
    