V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
miniwade514
V2EX  ›  JavaScript

使用 jquery.colorbox 时遇到的作用域问题,虽然解决了但没弄明白

  •  
  •   miniwade514 · 2014-02-07 01:17:33 +08:00 · 4531 次点击
    这是一个创建于 3942 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我感到奇怪, $ 和 window.$ 不是同一个东西?
    11 条回复    1970-01-01 08:00:00 +08:00
    emric
        1
    emric  
       2014-02-07 04:00:40 +08:00
    例一传进去的对象并不包括$.
    $在window身上但没有在当前作用域声明, 使用$前应该`var $=window.jquery`.
    ---
    组织了语言几分钟, 好像还是不能够很清晰的表达出来... (泪)
    bombless
        2
    bombless  
       2014-02-07 09:29:23 +08:00
    目测楼主是两次引入一个全局的$变量…
    按这个思路检查一下吧…
    sapjax
        3
    sapjax  
       2014-02-07 11:47:48 +08:00
    目测楼主是在my.js中的某个位置(你调用colorbox()之前),重新给$变量赋值了,否则不应该出现这种情况
    kevinkim
        4
    kevinkim  
       2014-02-07 13:18:34 +08:00
    @emric +1
    lz传递的是window对象而已,并没有$,如果非得只传个window,那么里面请用window.$(function(){...})
    zzNucker
        5
    zzNucker  
       2014-02-07 17:39:09 +08:00
    你应该是更改过$变量了,否则jquery应该是会把$主动写到全局变量里去的。
    miniwade514
        6
    miniwade514  
    OP
       2014-02-08 11:27:18 +08:00 via Android
    @sapjax my.js里面没有对$赋值,就直接拿来用的。但是这之前引用了jquery.colorbox.js ,它只是插件,应该不会给$ 赋值啊。
    miniwade514
        7
    miniwade514  
    OP
       2014-02-08 11:37:11 +08:00 via Android
    @emric 我以为全局的 $ 不用声明啊,那两段代码的区别就是有没有把全局的 $ 传进去,全局的我以为不传也能用啊。。
    我语言组织得也很吃力。。-_-#
    sapjax
        8
    sapjax  
       2014-02-08 14:35:06 +08:00
    @miniwade514 如果是在my.js外改写了$的话,那么你传全局的$进去,也没有用的,所以从你的代码片段来看,一定是在my.js中对$进行了赋值
    miniwade514
        9
    miniwade514  
    OP
       2014-02-08 22:14:57 +08:00
    sapjax
        10
    sapjax  
       2014-02-09 09:49:49 +08:00
    @miniwade514 额,那就不清楚了,按理说jquery.colorbox.js引入之后,$.fn就有了colorbox方法,如果后面没改写的话,应该不会出现你的报错。
    或者在jquery.colorbox.js引入到页面ready这段时间,$可能被改写,colorbox方法可能被删除,但是这种情况,你传$进去,也是解决不了的啊...
    FrankFang128
        11
    FrankFang128  
       2014-02-09 12:38:37 +08:00 via Android
    你 console.log($===window.$)不就知道了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1139 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:29 · PVG 02:29 · LAX 10:29 · JFK 13:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.