gpt4 book ai didi

JavaScript 变量未定义

转载 作者:行者123 更新时间:2023-11-30 18:43:50 25 4
gpt4 key购买 nike

我正在使用 jQTouch 为移动浏览器编写一个 HTML5 应用程序。

我正在使用如下代码设置变量:

var activeproduct; // globally in js file

然后我有一个 ul li 像这样设置 varialbe:

<li class="arrow" onclick="activeproduct=1;">
<a href="#productClickThru">Product</a>
</li>

这在 FF 上运行良好,但当我在 iPhone 的 Safari 上尝试时,当我尝试在函数内部使用 activeproduct 时出现未定义的错误。

我没有正确设置 var 吗?非常感谢任何帮助。

比利

这里需要更多代码(请注意所有列表项最终将动态生成):

我的 javascript 文件:

var jQT = new $.jQTouch({
statusBar: 'black'
});

var activeproduct;
var activeroom;
var activearea;
var last_hash;

$(function(){

$(window).bind( 'hashchange',
function(){
console.log('unloading ' + last_hash);
$(window).trigger('unload' + last_hash);

last_hash = location.hash;

console.log('loading ' + location.hash);
$(window).trigger('load' + location.hash);
});

$(window).bind('unload#productsMenu', function() {
$('#productsMenuContent > *').remove();
});
$(window).bind('load#productsMenu',
function() {
console.log('Products menu loaded');

$('<li class="arrow" onclick="activeproduct=1;"><a href="#productClickThru">Strip</a></li>').appendTo($('#productsMenuContent'));
$('<li class="arrow "onclick="activeproduct=2;"><a href="#productClickThru">Prep</a></li>').appendTo($('#productsMenuContent'));
$('<li class="arrow" onclick="activeproduct=3;"><a href="#productClickThru">Heavy Prep</a></li>').appendTo($('#productsMenuContent'));
$('<li class="arrow" onclick="activeproduct=4;"><a href="#productClickThru">Line</a></li>').appendTo($('#productsMenuContent'));
$('<li class="arrow" onclick="activeproduct=5;"><a href="#productClickThru">Finished Paper</a></li>').appendTo($('#productsMenuContent'));
$('<li class="arrow" onclick="activeproduct=6;"><a href="#productClickThru">Emulsion</a></li>').appendTo($('#productsMenuContent'));
$('<li class="arrow" onclick="activeproduct=7;"><a href="#productClickThru">Satin</a></li>').appendTo($('#productsMenuContent'));
});

$(window).bind('load#productClickThru',
function() {
alert(activeproduct);
console.log('Room: '+activeroom);
console.log('Area: '+activearea);
console.log('Product: '+activeproduct);
if( activeproduct == 1 ) {
$('#productClickThru > .toolbar > :header').html('Strip');
$('#productClickThru').find('.room-label').html('Room: '+activeroom);
$('#productClickThru').find('.area-label').html('Area: '+activearea);
} else if( activeproduct == 2 ) {
$('#productClickThru > .toolbar > :header').html('Prep');
$('#productClickThru').find('.room-label').html('Room: '+activeroom);
$('#productClickThru').find('.area-label').html('Area: '+activearea);
} else if( activeproduct == 3 ) {
$('#productClickThru > .toolbar > :header').html('Heavy Prep');
$('#productClickThru').find('.room-label').html('Room: '+activeroom);
$('#productClickThru').find('.area-label').html('Area: '+activearea);
} else if( activeproduct == 4 ) {
$('#productClickThru > .toolbar > :header').html('Line');
$('#productClickThru').find('.room-label').html('Room: '+activeroom);
$('#productClickThru').find('.area-label').html('Area: '+activearea);
} else if( activeproduct == 5 ) {
$('#productClickThru > .toolbar > :header').html('Finished Paper');
$('#productClickThru').find('.room-label').html('Room: '+activeroom);
$('#productClickThru').find('.area-label').html('Area: '+activearea);
} else if( activeproduct == 6 ) {
$('#productClickThru > .toolbar > :header').html('Emulsion');
$('#productClickThru').find('.room-label').html('Room: '+activeroom);
$('#productClickThru').find('.area-label').html('Area: '+activearea);
} else if( activeproduct == 7 ) {
$('#productClickThru > .toolbar > :header').html('Satin');
$('#productClickThru').find('.room-label').html('Room: '+activeroom);
$('#productClickThru').find('.area-label').html('Area: '+activearea);
}
});


});

index.php 文件:

<div id="productClickThru" class="page">
<div class="toolbar"><h1 name="title"></h1>
<a class="back button" href="#">Back</a>
</div>
<ul>
<li><span class="room-label"></span></li> //gets set by JS
<li><span class="area-label"></span></li> //gets set by JS
<li>
<select id="quantity">
<optgroup label="quantity">
<option value ="10">10</option>
<option value ="20">20</option>
<option value ="20">30</option>
<option value ="20">40</option>
<option value ="20">50</option>
<option value ="20">60</option>
<option value ="20">70</option>
<option value ="20">80</option>
<option value ="20">90</option>
<option value ="20">100</option>
<option value ="20">150</option>
</optgroup>

</select>
</li>
<li><textarea placeholder="Notes" ></textarea></li>
</ul>
<a href="#" class="submit whiteButton">Save</a>
<!-- #new-quote close -->
</div>

最佳答案

您可能需要将 js 包装在一个自执行函数中,例如:

<li class="arrow" onclick="javascript:(function(){activeproduct=1;})()">
<a href="#productClickThru">Product</a>
</li>

关于JavaScript 变量未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6059651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com