4

I want to do this: http://docs.jquery.com/Events/live#typefn

Only .live() doesn't support the change event- any ideas for work arounds?

Need to bind a function to some on-the-fly DOM elements, but not until change.

Bob
  • 2,738
  • 3
  • 18
  • 12

5 Answers5

4

Note: jQuery 1.4 now supports the live function for all normal events. It didn't work with IE8 until recently, but I believe this is fixed with jQuery 1.4.2. See this resolved jQuery ticket: IE8 DOES NOT SUPPORT THE CHANGE EVENT WHILE USING LIVE

Gabe Hollombe
  • 7,847
  • 4
  • 39
  • 44
3

LiveQuery plugin supports all events.

pestaa
  • 4,749
  • 2
  • 23
  • 32
2

Oh that wasn't so bad, i just wrapped it in a live on click event and it worked just fine.


$("#foo").live("click", function(){
  $('.fu').change(function(){
    blah blah blah
  });
});
Bob
  • 2,738
  • 3
  • 18
  • 12
  • 1
    You'll probably find that this has the (unwanted) effect of binding and re-binding your change function multiple times... – Funka Aug 27 '09 at 22:33
  • hm- i hadn't thought of that but you are obviously right. Since I won't need the function to work for the clicked/changed element again, would an acceptable solution be to $(this).removeClass("fu") at the end of my change function? – Bob Aug 27 '09 at 22:45
  • duh, answer to that one is obviously no... hmmmm seems like there must be a creative solution here that doesn't require a plug-in, i'll keep thinking about it. – Bob Aug 28 '09 at 00:27
2

Ok, after Funka's comments on my first attempt at answering my own question, I now have this:


$('.foo').change(function test(){
  $(fu).prependTo("#some-div").bind("change", test)
  $(this).unbind("change",test)
};

Which will bind the function to each element as it is created, and unbind it from the one created before it. This solves my problem UI-wise, but I'm obvs novice so am really open to learning if I am missing something again! ;)

Bob
  • 2,738
  • 3
  • 18
  • 12
0

Before there was .live() in jQuery 1.3, I had great success with Arial Flesler's "listen" plugin.

http://flesler.blogspot.com/search/label/jQuery.Listen

I believe you should be able to do this on the change event with this plugin.

Funka
  • 4,258
  • 2
  • 24
  • 27