完美的以下工作
sendtext5 = "Homer Simpson";
$eraser.prop('value', sendtext5);
$.mobile.pageContainer.pagecontainer( "change", $article2 );
但不是以下
sendtext5 = "Homer Simpson";
$.mobile.pageContainer.pagecontainer( "change", $article2 ); // This line executes
$eraser.prop('value', sendtext5); // This line does not execute
$ article2是div标签,$ eraser是输入标签。
我想知道为什么第二种情况有效,但第一种情况呢。
是jQuery 2.1.1和jQuery Mobile 1.4.5
非常感谢Stack Overflow!
答案 0 :(得分:0)
我假设$eraser
是$article2
中的元素。如果不是,那么这个答案可能毫无价值。
在第一个示例中,您正在设置属性BEFORE JQM增强了布局。
在第二个示例中,您将在布局增强后进行设置。这意味着您正在更改value
属性,但是在底层表单元素上。您需要告诉JQM重新渲染显示的元素。
如果$eraser
是文本框,请尝试以下操作:
sendtext5 = "Homer Simpson";
$.mobile.pageContainer.pagecontainer( "change", $article2 ); // This line executes
$eraser.prop('value', sendtext5); // This line does execute, just on the underlying element
$eraser.textinput( "refresh" ); // This line refreshes the displayed element with the underlying elements's properties