Javascript 这两个jQuery语句中没有bug,但我只是想知道为什么

Javascript 这两个jQuery语句中没有bug,但我只是想知道为什么,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,下面的工作做得很好 sendtext5 = "Homer Simpson"; $eraser.prop('value', sendtext5); $.mobile.pageContainer.pagecontainer( "change", $article2 ); 但不是下面的 sendtext5 = "Homer Simpson"; $.mobile.pageContainer.pagecontainer( "change", $article2 ); // This line e

下面的工作做得很好

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标记,$橡皮擦是输入标记

我想知道为什么第二种情况有效,而第一种情况有效

它是jQuery 2.1.1和jQuery Mobile 1.4.5


非常感谢,堆栈溢出

我假设,
$橡皮擦
$article2
中的一个元素。如果不是,那么这个答案可能毫无价值

在第一个示例中,在JQM增强布局之前设置属性

在第二个示例中,您将在布局增强后进行设置。这意味着您正在更改
属性,但更改的是基础表单元素。您需要告诉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
添加
console.log($article2)
console.log($橡皮擦)
告诉我们它到底打印了什么。