Here's some behavior I've run into that is not quite what I expected.
So the question is, should I expect something different or is this a
bug / gotcha?

I'm working on a plugin for manipulating tables (the ones that are
published do not suit my needs).

So I have the following inside my plugin:

$.fn.myplugin = function(opts) {
  do_something(this);

  $(this).children('thead th:last').click(function() {
    do_something_else(this);
  };
};

function do_something_else(obj) {
  my_clicked = $(obj).parents('thead');
  ....
};

An example table:

<table>
  <thead>
    <th>A</th><th>B</th>
  </thead>
  <tbody>
   ....
  </tbody>
</table>

Now, I expect that my_clicked will be an object for <thead>, but in
actuality, it isn't anything, because obj is an object for <thead>,
not for <th>B</th> as I expect it to be (since that was what was
clicked, and should have been passed as 'this').

Could someone please explain why it's working that way to me, and how
I might get what I expect instead of what it is getting?

Reply via email to