0

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>'
}
5
  • could you make a fiddle for this @ jsfiddle.net ? Commented Jun 8, 2013 at 9:15
  • You can use any selector $('#id') or $('.class') or $('[data-role=role]')...etc Commented Jun 8, 2013 at 9:18
  • I tryied that It seems only the content inside the table get effected but none of the jqm css works for the table its not responsive . Commented Jun 8, 2013 at 9:32
  • ui-table ui-table-reflow these classes are missing they are added in the run time i guess but I do not know why they are not there Commented Jun 8, 2013 at 9:36
  • are you trying to create a table dynamically? $('[data-role=table]').trigger('create'); should do the job. Commented Jun 8, 2013 at 9:57

1 Answer 1

3

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.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.