JavaScript - 切换功能

标签 javascript

我试图隐藏/显示我在 chrome 扩展中定义的 JS 函数。

到目前为止我所拥有的: 我试图隐藏的跨度类是标签:

dspan.className = "cExtension";

//Create toggle button:

function createToggleButton(){
    var toggleButton = document.createElement("button");
    toggleButton.innerHTML = "Toggle Overlay";
    toggleButton.id = "Toggle"
    var header = document.getElementById("header");
    header.appendChild(toggleButton);
    toggleExtension();
}

// find all spans and toggle display:

function toggleExtension(){
    var spans = document.getElementsByTagName('span');
    var toggle = function() {    
        for (var i = 0, l = spans.length; i < l; i++) {
            if (spans[i].getAttribute('class') == 'cExtension') 
                if (spans[i].style.display == 'none') spans[i].style.display = '';
                else spans[i].style.display = 'none';
        }
    }
    document.getElementById('Toggle').onclick = toggle;
}

该按钮显示在标题上,但无法单击。如果我将 document.getElementById('Toggle').onclick =toggle; 更改为 document.getElementById('Toggle').onclick =alert{"Hello");警报是在页面加载时触发的,而不是单击时触发的。我正在尝试用纯 JS 来完成这个工作。我哪里出错了?

最佳答案

首先,document.getElementById("Toggle").onclick =alert("Hello"); 会将 onclick 事件设置为警报函数返回的内容,而不是警报函数本身。因此,警报功能在页面加载时发生,因此它可以确定要返回的内容。所以你可以这样做: document.getElementById("Toggle").onclick = function(){alert("Hello");}; 这可能会起作用。

编辑:刮掉这里的所有内容:我错过了设置为 toggleExtension 中函数的 toggle 变量。

我还没有测试所有这些,所以我不能保证它在您的具体情况下都能正常工作。

关于JavaScript - 切换功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17432442/

相关文章:

javascript - CSS :after not appearing in firefox

javascript - Javascript 函数没有被调用

javascript - 如何从ajax返回两个html内容?

javascript - 在单页应用程序中选择菜单时调用 Controller - angularJs

javascript - 基本的 javascript 函数不起作用

javascript - 使用JavaScript将页面滚动到屏幕上的某个点(如果小于某个大小)?

javascript - 如何引用<p class>中提到的单词将class应用于<td>

javascript - select2 多值只在 POST 中发送一个值

javascript - 多个物体不摆动,保持卡住

javascript - Jquery - 检查 : If scroll possible (div with overflow:scroll)