0

嗨,我有一个 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)
}

奇怪的。

4

1 回答 1

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 中。我还建议您检查浏览器错误控制台或调试控制台,看看是否有任何相关的脚本错误可能会在代码完成之前中断代码。

于 2013-05-18T01:09:54.257 回答