Piumal Chamath
Piumal Chamath

Reputation: 437

jquery mobile trigger create method

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

Answers (1)

krishwader
krishwader

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

Related Questions