- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一段 JQuery 代码,可以进行一些栏滚动。
由于我有三个、四个、...n 栏可以滑入我的 PHP 页面,因此我为它们分配一个动态 id 并将其传递给 JQuery 以确保确定我的代码片段在 mouseOver 事件上滑动正确的栏。
这是对我的卷轴进行“初始化”的代码片段
(function($){
$.fn.horizontalScroll = function(options) {
var rid = arguments[0];
var oid = arguments[1];
var defaults = { };
var options = $.extend(defaults, options);
return this.each(function() {
var horiz_scroll = new dw_scrollObj($(this).attr('id'), $(this).children().attr('id'), $(this).children().children().attr('id'));
horiz_scroll.setUpScrollbar("dragBar_"+rid+"_offer_"+oid, "track_"+rid+"_offer_"+oid, "h", 1, 1);
horiz_scroll.setUpScrollControls('scrollbar_'+rid+'_offer_'+oid);
如您所见,"dragBar_"+rid+"_offer_"+oid
将我的 id 动态连接到其他字符串部分。
很好,一切都很顺利,除非我的 oid
变成了类似 -1
在这种情况下,我会收到一个错误,提示
identifier starts immediately after numeric literal
这让我很困惑,因为我在 StackOverflow 上读到了一些问题,例如 this (只是一个随机的),我期望涉及数字的所有串联行为。
所有“中断”的代码片段
this.timerId = setInterval(this.animString + ".scroll()", 10);
其中 this.animString
为 "dw_scrollObj.col.horiz_container_outer_55_offer_-1"
而在其他情况下(有效)为 "dw_scrollObj.col.horiz_container_outer_62_offer_234 “
谁能解释一下为什么会发生这种情况?
最佳答案
您正在尝试访问名为dw_scrollObj.col.horiz_container_outer_55_offer_-1
的全局变量。有些浏览器会让所有元素都可以通过其 ID
进行访问,但不建议这样做。
它在您的具体情况下不起作用的原因是您编写的内容不是有效的 JavaScript 变量名称。您尝试访问变量将被解释为
dw_scrollObj.col.horiz_container_outer_55_offer_ - 1
如果您想通过以下方式访问您的对象
document.getElementById('dw_scrollObj.col.horiz_container_outer_55_offer_-1')
或
$('#dw_scrollObj.col.horiz_container_outer_55_offer_-1')
你不会遇到同样的问题。
对于您的 setInterval
代码,这意味着
this.timerId = setInterval("$('#" + this.animString + "').scroll()", 10);
或者最好
this.timerId = setInterval(function() {
$('#' + this.animString).scroll();
}, 10);
如果您的代码处于循环中,其中 animString
将随时间而变化,在上下文中,您将需要创建一个新的闭包:
this.timerId = setInterval((function(x) {
return function() {
$('#'+x).scroll();
};
})(this.animString), 10);
关于javascript - javascript/jquery "hate"负数是否作为 id 名称的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10210067/
我目前正在尝试通过 Pl/Sql (Oracle) 中的 dbms_ldap API 访问 Active Directory。问题是我无法使用自己的用户名和密码或任何方式连接。 但是,在 C# 中,我
我有一个解决方案,我试图在 TFS 上构建。我想更新所有相应文件的版本,但我一直在努力完成这项工作。有很多关于如何操作的链接,但由于一个小问题……范围,它们都不适合我。
我的 .emacs 中有这个: (global-set-key "\M-s" 'switch-to-buffer) 并且: (defvar crs-hated-buffers '("KILL" "
我正在从 CVS 迁移到 Git。我正在 Cygwin 终端上尝试以下命令 $ git cvsimport -v -d :pserver:kashif.nazar@cvs-server:/cvsroo
我有一段 JQuery 代码,可以进行一些栏滚动。 由于我有三个、四个、...n 栏可以滑入我的 PHP 页面,因此我为它们分配一个动态 id 并将其传递给 JQuery 以确保确定我的代码片段在 m
我是一名优秀的程序员,十分优秀!