That .live() code wouldn't work because what you've really written is:
var temp = exp_iphone_get_trans();
$('#transactions ul li a').live('click tap', temp);
Now you can probably see what the problem is with that. By adding the ()
after the function name, you are *calling* the function immediately and then
passing its *return value* to the .live() method.
Note that your other code with .bind() doesn't have the extra () after the
callback funciton name.
Here's a subtle thing, but I find it very helpful to put whitespace inside
the parentheses of a function call. So this line of code:
$('#transactions ul li a').live('click tap', exp_iphone_get_trans());
I would have written as:
$('#transactions ul li a').live( 'click tap', exp_iphone_get_trans()
);
Now it's become a little easier to see those extra () after the callback
function name.
Another subtle thing, but I also find it helpful to avoid
names_with_underscores and instead use camelCaseNames. Why? The underscore
is a punctuation mark, and in a language with so much significant
punctuation, these extra punctuation marks detract from the meaningful ones.
So I might write the code like:
$('#transactions ul li a').live( 'click tap', iPhoneGetTrans() );
Now things are "stuck together" visually for me in a way that better
highlights the significant punctuation. For me at least this helps that
extra () after the iPhoneGetTrans name stand out, so hopefully I would catch
on and correct it to:
$('#transactions ul li a').live( 'click tap', iPhoneGetTrans );
-Mike
On Sat, Dec 26, 2009 at 1:29 PM, mrtoner <[email protected]> wrote:
>
> Using jQ 1.3.2; I also tried
>
> $('#transactions ul li a').live('click tap',
> exp_iphone_get_trans());
>
> to no avail. Any suggestions?
>