JavaScript代码不会在机器上运行,但在JSFiddle

时间:2017-06-02 11:55:47

标签: javascript jquery

我从上一个问题中得到以下脚本。我试过运行但它不起作用。也没有任何控制台消息。它确实与名为lstr.js的控制台中的某些内容冲突(我认为它与chrome相关),代码在jsfiddle中正常工作,但在我的机器上却没有。

var links = document.getElementsByClassName('link'),         // add a class to the links and get them all
  contentDivs = document.getElementsByClassName('content');  // same with the content blocks

    for (i = 0; i < links.length; i++) {                        // loop through the links to add the event listeners
      var link = links[i];

      // add event listener
      link.addEventListener('click', function(event) {

        // reset color and hide content:
        for (a = 0; a < links.length; a++) {
          // number of links should match number of content
          links[a].style.backgroundColor = 'magenta';
          contentDivs[a].style.display = 'none';
        }

        // set colour of clicked
        event.target.style.backgroundColor = 'grey';

        // show clicked content
        document.getElementById(event.target.getAttribute("href").substring(1)).style.display = 'block';
      })
    }

1 个答案:

答案 0 :(得分:0)

在函数中包装然后执行

function attachEvents() {
    var links = document.getElementsByClassName('link'); // add a class to the links and get them all
    var contentDivs = document.getElementsByClassName('content'); // same with the content blocks

    for (i = 0; i < links.length; i++) { // loop through the links to add the event listeners
        var link = links[i];

        // add event listener
        link.addEventListener('click', function(event) {

        // reset color and hide content:
        for (a = 0; a < links.length; a++) {
            // number of links should match number of content
            links[a].style.backgroundColor = 'magenta';
            contentDivs[a].style.display = 'none';
        }

        // set colour of clicked
        event.target.style.backgroundColor = 'grey';

        // show clicked content
        document.getElementById(event.target.getAttribute("href").substring(1)).style.display = 'block';
        });
    }
}

document.addEventListener('DOMContentLoaded', function() {
    attachEvents();
}

所以最后,你可能看起来像

links.length === contentDivs.length

代码没问题,除非您应该检查public static IServiceCollection AddThisLibrary(this IServiceCollection services) { //a lot of addTransient... return services; }