« Return to Thread: Jquery bind with parameters? Replace inline onclick for server side generated lists, onclick(x, y, z)
Re: Jquery bind with parameters? Replace inline onclick for server side generated lists, onclick(x, y, z)
James & Ricardo,
Thank you both for the detailed responses, I appreciate it.
I didn't realize HTML 5 can be used NOW without having to wait for
browser quirks. In that case, it is absolutely the way to go. I
already have this working and it is great, very clean, the way it
should be IMO. If for some reason I weren't able to use that, I
probably would use 2 server side loops, one for the html, one for the
js.
Thanks again,
John
On Jul 2, 11:21 pm, Ricardo <ricardob...@...> wrote:
> You can put data inside the class attribute (like <div
> class="someclass { id: 234 }"></div>), it's perfectly valid. The class
> attribute is not meant for presentation only according to the HTML/
> XHTML specs.http://plugins.jquery.com/project/metadata
>
> Or, use the HTML5 doctype <!DOCTYPE html> (with valid mark-up
> obviously) and the new data-xx attribute, that will give you standards
> mode in all browsers and perfectly valid attributes:
>
> <td class="trigger" id="trigger_${record.ID}" data-recordID="$
> {record.ID}">${record.name}</td>
>
> $('td.trigger').click(function(){
> alert( $(this).attr('data-recordID') );
>
> });
>
> Seehttp://ejohn.org/blog/html-5-data-attributes/for more info.
>
> cheers
> -- ricardo
>
> On Jul 2, 12:45 pm, John Newman <john.newma...@...> wrote:
>
> > Hello
>
> > First off if this is a double post I apoligize, I sent my first
> > message an hour ago and it is not showing up. Anyway:
>
> > I've wondered if there is a way to do this for a while. Perhaps I am
> > missing something or should use a different approach altogether.
>
> > Say I have a dynamic page that generates some td elements. The
> > syntax here is freemarker but you can easily envision your favorite
> > serverside text generating language instead.
>
> > <table id="records">
> > <thead><th>Name</th></thead>
> > <tbody>
> > [#list records as record]
> > <tr>
> > <td class="trigger" id="trigger_${record.ID}" onclick="showDetails
> > (${record.ID})">${record.name}</td>
> > </tr>
> > [/#list]
> > </tbody>
> > </table>
>
> > <script type="text/javascript">
> > function showDetails(recordID) {
> > // normally an ajax post but you get the idea
> > window.location = '/record?recordID=' + recordID
> > }
> > </script>
>
> > Now I want to get that onclick out of there and bind it using jquery,
> > but i haven't been able to figure out if there is a way to get the
> > parameter there. Apart from putting it in some attribute and looking
> > at it. Is there a cleaner way?
>
> > <script type="text/javascript">
> > $(document).ready(function() {
> > $('#records td.trigger').click(function() {
> > window.location = '/record?recordID=' + ??? how do i get
> > that
> > });
> > });
> > </script>
>
> > I know I could look at the elements attributes, something like
> > this.attr("id").substring().etc().etc() .. but sometimes there are
> > many parameters to the javascript fn to generate the post and that
> > approach doesn't seem to viable. and there isn't really a standard
> > attribute to use that makes sense for that anyway. So how do I do
> > this?
>
> > Thanks
« Return to Thread: Jquery bind with parameters? Replace inline onclick for server side generated lists, onclick(x, y, z)
| Free embeddable forum powered by Nabble | Forum Help |