我有一个var“status”,应该使用Jquery中的.html插入到锚标记中。
(<a class="status"><span>$status</span></a>)
这类似于Chrome中的魅力,但不适用于IE10或Firefox。我在这个函数的底部添加了console.log,它正确地写了var'status',因为它在Chrome中来回切换,而不是在IE或Firefox中。在那里,日志写道变量是“未定义的”。
function clickPrice(ev) {
pp = $(this).closest('.price-point')
status = pp.attr('data-status')
if (status=='active') status = 'inactive'
else status = 'active'
pp.addClass('dirty')
pp.attr('data-status', status)
$(this).html(status)
console.log(status)
}
怪异。
答案 0 :(得分:2)
如果没有像jsFiddle那样看到实际功能的代码块,我们很难知道不同浏览器中的行为有什么不同。我建议你先从本地定义你的变量,这样你就不会无意中搞乱其他全局变量:
function clickPrice(ev) {
var pp = $(this).closest('.price-point');
var status = pp.attr('data-status');
if (status === 'active') {
status = 'inactive';
} else {
status = 'active';
}
pp.addClass('dirty').attr('data-status', status);
$(this).html(status);
console.log(status);
}
为了获得进一步帮助的最佳机会,请向我们展示相关的HTML,事件处理程序并将其放入正常运行的jsFiddle中。我还建议您检查浏览器错误控制台或调试控制台,看看是否存在任何可能在代码完成之前中断代码的相关脚本错误。