Reputation: 437
I was wondering how I'd call .trigger("create")
method after injecting a table dynamically.
I found this in jquery mobile docs
$("...new markup that contains widgets...")
.appendTo(".ui-page")
.trigger( "create" );
But, (due to my limited knowledge) I do not know what I must replace new markup that contains widgets... with - is it the ID of the table I'm using?
Here's what I've tried till now :
JS
$(".ui-responsive").trigger("create");
How the HTML is injected
{
title:'test-jqry',
content:'<table data-role="table" id="testjqtable" data-mode="reflow" class="ui-responsive table-stroke jqm-table"><thead><tr><th data-priority="1">Rank</th><th data-priority="persist">Movie Title</th><th data-priority="2">Year</th><th data-priority="3"><abbr title="Rotten Tomato Rating">Rating</abbr></th><th data-priority="4">Reviews</th></tr></thead><tbody><tr><th>1</th><td><a href="http://en.wikipedia.org/wiki/Citizen_Kane" data-rel="external">Citizen Kane</a></td><td>1941</td><td>100%</td><td>74</td></tr><tr><th>2</th><td><a href="http://en.wikipedia.org/wiki/Casablanca_(film)" data-rel="external">Casablanca</a></td><td>1942</td><td>97%</td><td>64</td></tr><tr><th>3</th><td><a href="http://en.wikipedia.org/wiki/The_Godfather" data-rel="external">The Godfather</a></td><td>1972</td><td>97%</td><td>87</td></tr><tr><th>4</th><td><a href="http://en.wikipedia.org/wiki/Gone_with_the_Wind_(film)" data-rel="external">Gone with the Wind</a></td><td>1939</td><td>96%</td><td>87</td></tr><tr><th>5</th><td><a href="http://en.wikipedia.org/wiki/Lawrence_of_Arabia_(film)" data-rel="external">Lawrence of Arabia</a></td><td>1962</td><td>94%</td><td>87</td></tr></tbody></table>'
}
Upvotes: 0
Views: 10179
Reputation: 11381
Here's a demo : http://jsbin.com/umatel/1/edit
According to jQuery Mobile's docs, you cant call trigger
on individual elements. Call it on the parent of the element. In your case that would be div[data-role=page]
. So after you inject your HTML into the page, call trigger like this :
//first is the div with data-role set to page. for more info, see demo
$("#first").trigger("create");
Hope this clears things up.
Upvotes: 3