Ken*_*all 9 javascript jquery google-chrome
.on("change")当用户在Chrome 57中工作时,此部分活动无法正常运行.这只是Chrome 57问题.
设置中的userId变量if并在到达此代码之前具有值.
但是,条件在应该的时候没有被发现.
但是如果我正在调试并且有一个断点设置我会想到if并且我在断点处停下来并且停留一段时间这是否正常工作.
这并没有影响使用57的每个人.
我只能重新创建这个问题两次,在调试之后,它就消失了.
对于发生了什么以及如何解决它的想法?
我还要注意,我们使用的是非常旧版本的jquery - 1.11.1并且升级并不容易.
var selected = $(this).children("option:selected");
var name = selected.html();
var userId = selected.attr("value");
var personInList;
$("li", "#list1").add("li.person", "#list2").each(function () {
if ($(this).data("userId") == userId) {
personInList = $(this);
return;
}
});
if (userId && userId!= "default" && !personInList) {
//some code that gets triggered that shouldn't because this "if" is turning up true
}
Run Code Online (Sandbox Code Playgroud)
对我来说,这成功了:
在设置 .data() 的地方,只需将元素或数据结果保存在某处即可。
$('#someElem').data('userId', '1234');
var elemData = $('#someElem').data('userId');
window['someUniqueKey'] = elemData;
//or
console.log(elemData);
Run Code Online (Sandbox Code Playgroud)
然后,调用$('#someElem').data('userId')应该在事件处理程序中返回有效数据。
至于为什么会发生这种情况:我将非常感谢您的回答。我的一位同事建议这可能与新 Chrome 中的垃圾收集有关。但如果是这样,看起来就像是 GC 中的一个错误。
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |