【问题标题】:multiple function selectors when clicked?单击时有多个功能选择器?
【发布时间】:2011-11-24 03:52:46
【问题描述】:

我还在学习如何编写函数..

我希望能够点击一个项目,它会添加到一个功能上

<a href='#' onclick="play('url1')">Item 1</a>
<a href='#' onclick="play('url2')">Item 2</a>
<a href='#' onclick="play('url3')">Item 3</a>

所以,如果我试图同时访问这些项目中的任何一个,一个、两个甚至所有三个,如果我有这样的东西,我该如何将它调用到一个函数中

function play(url_src){

}

src 一次只能使用一项?有关联的数组吗?

我必须做这样的事情吗

function play(url_src[]){

}

【问题讨论】:

  • 我很困惑,你是不是要建一个数组?因此,如果用户单击第 1 项,则数组将包含 {url1},如果用户随后单击第 2 项,则数组将为 {url1, url2}?
  • function play(url_src){ 是传递一个参数 - 它可以是数组,但是您在示例中传递字符串
  • or even all three at the same time 这是什么意思?你要同时点击所有链接吗!
  • 这是一个例子。如果我点击一个,那么它将播放一个项目。但是如果我点击了 2 或 3 个项目,那么所有被点击的项目都应该同时播放

标签: javascript jquery arrays function


【解决方案1】:

将参数设为数组:

<a href='#' onclick="play(['url1', 'url2'])">Item 4</a>

然后解析它:

function play(url_src){
  if (!(url_src instanceof Array)) {
    url_src = [url_src];
  }

  for (var i = 0; i < url_src.length; i++) {
    url = url_src[i];

    // Play each url.
  }
}

我使用第二行的if 语句来说明参数不是数组,如下所示:

<a href='#' onclick="play('url1')">Item 5</a>

【讨论】:

  • 这似乎合乎逻辑。但我想知道我是否要单击项目 1 和项目 2,每个不同的网址。我是否必须设置另一个函数来捕获这两个并将其放入数组中?然后将该数组发送到function play(url_src){..}?
【解决方案2】:

你可以定义一个新的函数,或者尝试onclick="play('url1');play('url2')"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-18
    • 2023-03-30
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 2021-03-26
    • 1970-01-01
    相关资源
    最近更新 更多