无法在点击事件中触发脚本

时间:2013-10-11 02:34:00

标签: javascript jquery html

如果有人能看到这里的罪魁祸首,我将不胜感激。我尝试使用原生JS而不是jQuery来实现click功能,但是,click功能无论如何都无法正常工作。我必须在这里找到一些东西。

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";
};

3 个答案:

答案 0 :(得分:2)

使用原生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";,否则需要遍历数组并设置样式

    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

答案 1 :(得分:1)

你得到什么错误? 如果没有,但表格没有隐藏,原因必须是

revForm = function () {
    hideforms;
};

应该是

revForm = function () {
    hideforms();
};

不要忘记调用revForm函数,它应该是revForm();

答案 2 :(得分:0)

试试这个

$(".adcats > li").on('click',function() {
    document.getElementsByClassName("fashion").style.display = "block";
});