我有一个奇怪的问题:我的条件在javascript中不起作用:/

这是我的代码:

var myposition = $("#audioWelcome").data("myposition");

/* condition */
if (myposition == "true") {
....
}

不对吗?参见我的示例:http://jsfiddle.net/qqK5J/2/条件不起作用,并且html();或data();也行不通。

什么不正确?

最佳答案

要回答您的问题:

if (myposition == "true") {

无法正常工作,因为myposition bool(boolean) true,它不等于字符串"true"

您可能想知道myposition为什么是 bool(boolean) 值。那是因为jQuery converts it to a boolean:



因此,您真正要做的就是更改代码以设置 bool(boolean) 值而不是字符串,并相应地调整条件:
if (myposition) {
    $(this).html("afficher le lecteur");
    $('#audioWelcome').data('myposition', false);
} else {
    $(this).html("cacher le lecteur");
    $('#audioWelcome').data('myposition', true);

}

或更短:
$(this).html(myposition ? "afficher le lecteur" : "cacher le lecteur");
$('#audioWelcome').data('myposition', !myposition);

DEMO

09-15 13:37