相关疑难解决方法(0)

什么是词汇范围?

有人可以给我一个关于词汇范围的简要介绍吗?

javascript scoping lexical-scope

645
推荐指数
14
解决办法
16万
查看次数

如何在全局提供jQuery.ready中定义的函数?

我有一个功能,可以从网址中删除youtube id.然后我想每页使用此功能10次(在wordpress循环中).

当我在我的函数脚本标记中提供url时,该函数很有用,但是当我在循环中启动一组新的脚本标记时,它不起作用.

我需要知道如何在不首先声明所有功能的情况下使用我的功能.

所以这是我在标题中的代码:

 <script type="text/javascript"> 
$(document).ready(function() {
var getList = function(url, gkey){
        var returned = null;
        if (url.indexOf("?") != -1){
          var list = url.split("?")[1].split("&"),
                  gets = [];

          for (var ind in list){
            var kv = list[ind].split("=");
            if (kv.length>0)
                gets[kv[0]] = kv[1];
        }

        returned = gets;

        if (typeof gkey != "undefined")
            if (typeof gets[gkey] != "undefined")
                returned = gets[gkey];

        }

            return returned;

    };


        // THIS WORKS

    alert(getList('http://www.youtube.com/watch?v=dm4J5dAUnR4', "v"));


      });
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在页面上的其他地方使用它时,它不起作用.

 <script type="text/javascript"> 

      $(document).ready(function() {
              alert(getList('http://www.youtube.com/watch?v=dm4J5dAUnR4', "v"));
      };
      </script>
Run Code Online (Sandbox Code Playgroud)

Firebug给我 …

javascript jquery

65
推荐指数
4
解决办法
8万
查看次数

函数不在onclick事件中调用

我想在每个youtube链接的末尾添加一些HTML,以便在litebox中打开播放器.到目前为止这是我的代码:

$(document).ready(function() {
  var valid_url = new RegExp('youtube\.com\/.*v=([a-zA-Z0-9_-]+)');
  var image_data = 'base64 encoded image';

  init();

  function init() {
    $('a').each(function() {
      if (valid_url.test($(this).attr('href'))) {
        $(this).after( ' <img src="' + image_data + '" onclick="open_litebox(\'hi\');" />' );
      }
    });
  }

  function open_litebox(param) {
    alert(param);
  }
});
Run Code Online (Sandbox Code Playgroud)

它可以在youtube链接之后注入一些HTML,就像这样:

<img src="base 64 data" onclick="open_litebox('hi')">
Run Code Online (Sandbox Code Playgroud)

但是当我点击这个时,open_litebox()函数不会被调用.查看错误控制台我可以看到一个错误open_litebox is not defined,但我已经定义了它.

我对这里出了什么问题一无所知,有人可以帮我一把吗?

谢谢.

javascript jquery scope function onclick

29
推荐指数
3
解决办法
6万
查看次数

标签 统计

javascript ×3

jquery ×2

function ×1

lexical-scope ×1

onclick ×1

scope ×1

scoping ×1