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

时间:2014-12-02 01:28:35

标签: 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 executes

$eraser.prop('value', sendtext5);   // This line does not execute 

$ article2是div标签,$ eraser是输入标签。

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

是jQuery 2.1.1和jQuery Mobile 1.4.5

非常感谢Stack Overflow!

1 个答案:

答案 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