Javascript Internet Explorer字符串比较
此功能在Firefox中正常工作,但在IE11中无法正常工作。我相信罪魁祸首是:Javascript Internet Explorer字符串比较,javascript,internet-explorer,backbone.js,marionette,Javascript,Internet Explorer,Backbone.js,Marionette,此功能在Firefox中正常工作,但在IE11中无法正常工作。我相信罪魁祸首是: event = String(data.model.attributes.eventToRaise); 我知道,通过我在这里删除的一系列日志,我正确地进入了第一个else分支,但是在IE中,与“AAA”和“BBB”的比较并不正确。在Firefox中记录“event”的内容会显示一个字符串,但在IE控制台中它是一个指针。我尝试了一些不同的东西。toString,+事件,所有这些都在FF中起作用,但在IE中不起作用
event = String(data.model.attributes.eventToRaise);
我知道,通过我在这里删除的一系列日志,我正确地进入了第一个else分支,但是在IE中,与“AAA”和“BBB”的比较并不正确。在Firefox中记录“event”的内容会显示一个字符串,但在IE控制台中它是一个指针。我尝试了一些不同的东西。toString,+事件,所有这些都在FF中起作用,但在IE中不起作用
上下文是木偶网的主干,这个函数在来自不同地方的点击事件上被调用,代码应该确定是哪个事件发起了调用
showPanel: function (data) {
event = String(data.model.attributes.eventToRaise);
if (event === this.lastEvent) {
//do something
}
else {
var view = NaN;
if (event === 'AAA') {
//whatever
}
else if (event === 'BBB') {
//whatever else
}
this.lastEvent = event;
}
编辑:“var event=Stringdata.model.attributes.eventoraise;”已解决问题您可以尝试以下方法:
showPanel: function (data) {
event = new String(data.model.attributes.eventToRaise);
if (event === this.lastEvent) {
//do something
}
else {
var view = NaN;
if (event.indexOf("AAA")) {
//whatever
}
else if (event.indexOf("BBB")) {
//whatever else
}
this.lastEvent = event;
}
解决了问题。那么,您将eventToRaise设置为什么?1为什么设置为event而不是var event?2为什么Stringdata.model.attributes.eventToRaise而不仅仅是data.model.attributes.eventToRaise?@muistooshort var event做到了,谢谢。字符串,因为它的行为不像字符串,所以我试图更明确,但这是不必要的。
var event = data.model.attributes.eventToRaise;