javascript - 无法在点击事件上触发脚本

标签 javascript jquery html

如果有人能看出这里的罪魁祸首是什么,我将不胜感激。我尝试过使用原生 JS 而不是 jQuery 来实现单击功能,但是,单击功能无论如何都不起作用。我这里一定缺少一些东西。

HTML:

    <ul class="adcats">
    <li>One</li>
    <li>Two</li>
    <li>Three</li>
    </ul>
    <div class="contactform fashion">Testing</div>
    <div class="contactform othername">Other</div>
    <div class="contactform othername2">Others</div>

JS代码:

    var hideforms = jQuery('.contactform').hide();
    var buttons = jQuery('.adcats > li');
    var hideforms;
    revForm = function () {
    hideforms;
};
    buttons[0].click = function () {
        revForm;
    document.getElementsByClassName("fashion").style.display = "block";
};

最佳答案

使用原生javascript,需要使用onclick添加点击处理程序

buttons[0].onclick = function () {
}

使用 jQuery,您可以使用 .click()

buttons.first().click(function(){
})

另外 document.getElementsByClassName("fashion").style.display = "block"; 是错误的,因为 document.getElementsByClassName("fashion") 返回一个数组,不是单个 dom 元素。因此,如果只有一个 fashion 类元素,那么您需要使用 document.getElementsByClassName("fashion")[0].style.display = "block"; else您需要遍历数组并设置样式

    var arr = document.getElementsByClassName("fashion")
    for (var i = 0; i < arr.length; i++) {
        arr[i].style.display = "block";
    }

可行的解决方案类似于

jQuery(function () {
    var buttons = jQuery('.adcats > li');
    var forms = jQuery('.contactform').hide();

    buttons.click(function () {
        forms.hide();
        forms.filter($(this).data('target')).show()
    })
})

演示:Fiddle

关于javascript - 无法在点击事件上触发脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19309352/

相关文章:

javascript - Timepicker 上的更改事件在 JS Fiddle 中工作,而不是在生产/开发环境中工作

javascript - 多语言网站,两个主页

javascript - 使用滚动淡出视差背景图像

javascript - 单击时更改背景

html - CSS字体系列不适用于IE11

javascript - 防止输入文本元素接受丢弃的元素作为输入

javascript - HTML:在输入之间切换时显示移动?

javascript - 一个 Router 可能只有一个子元素

来自外部 .php 文件的 PHP 变量,在 JavaScript 中?

jQuery - datepicker.parseDate 在 'mm/y' 上导致无效日期