Javascript jQuery.click()和alert()问题

Javascript jQuery.click()和alert()问题,javascript,jquery,jsp,Javascript,Jquery,Jsp,我是jQuery新手,有一些问题。这个jsFiddle显示了我所经历的:注意按钮是如何不起任何作用的 我试图做的是设置一个按钮的点击监听器,并让它发出警报();。但是,单击事件或警报()都不起作用 我已经尝试了click事件,如.click()、.on()、.delegate()和.live(),但它们似乎都不起作用。至于警报,我找不到任何与“如果您执行‘警报([sting]);’自动工作!”等效的东西!我知道.click()代表1.7+,.live()被贬值,即使如此.delegate()也比

我是jQuery新手,有一些问题。这个jsFiddle显示了我所经历的:注意按钮是如何不起任何作用的

我试图做的是设置一个按钮的点击监听器,并让它发出警报();。但是,单击事件或警报()都不起作用

我已经尝试了click事件,如.click()、.on()、.delegate()和.live(),但它们似乎都不起作用。至于警报,我找不到任何与“如果您执行‘警报([sting]);’自动工作!”等效的东西!我知道.click()代表1.7+,.live()被贬值,即使如此.delegate()也比它更受欢迎

在我当前的项目中,我将jsp与脚本

但是,它在JSFIDLE中也不起作用。此版本在我们的其他一些页面(警报和.click事件)上运行良好,但由于某些原因,我当前正在处理的页面存在问题。我已经尽我所能模仿其他页面,但我可能遗漏了一些东西。写jQuery的那个人已经不在我们公司了

我已经搜索过了,但没有一个结果对我有用:

+其他的都是一样的


如果您有任何见解,我们将不胜感激。

您有几个问题。确保检查javascript控制台是否存在错误。以下是一个工作版本:

要解决您的问题,请执行以下操作:

$(document).ready(function(){
    $.delegate('#but', 'click', buttonClick());

    function buttonClick(){
        $('#res').hide().html("BUTTON!!!").fadeIn('fast');
        alert("Hello!");
    }; // this semi-colon shouldn't be here
}; // missing closing paren for ready()
delegate
的用法如下:

$('selector').delegate(...)
虽然
delegate()
已替换为
on()
,但应改为使用

另外,
buttonClick()
应该是
buttonClick
。添加括号时,您正在执行函数。在这种情况下,您要做的是将函数作为参数传递。

多个问题

首先,您需要选择具有委托(最近的静态父级)的元素

参数中的函数不应以braket结束

$(document).delegate('#but', 'click', buttonClick);
您缺少一个右括号

小提琴:

但由于您的按钮是静态的,您可以直接使用click:

$('#but').click(buttonClick);
此外,如果不推荐使用委派,则应使用
.on()

我发现三个问题:

  • .delegate
    也不推荐使用,您应该使用。您直接在
    $
    上也将其称为错误。最后,您可以很好地使用
    。直接单击

  • 绑定事件时不传递函数引用,而是调用函数(传递的是
    buttonClick()
    而不是
    buttonClick

  • 您忘记在结尾处关闭括号,导致语法错误(请始终检查浏览器的控制台,它将显示此类错误)

  • 解决所有这些问题后,您的代码将是:

    $(document).ready(function(){
    
        // using .click instead of .delegate
        // .on('click', buttonClick) would work too
        $('#but').click( buttonClick );
        // no calling parentheses  -^
    
        function buttonClick(){
            $('#res').hide().html("BUTTON!!!").fadeIn('fast');
            alert("Hello!");
        }
    });
    // added missing ) at the end
    

    文档中缺少结束符
    。准备就绪:

    $(document).ready(function(){
        $.delegate('#but', 'click', buttonClick());
    
        function buttonClick(){
            $('#res').hide().html("BUTTON!!!").fadeIn('fast');
            alert("Hello!");
        };
    });
    

    我还建议像这样使用
    .on()

    您有一些语法错误和对函数的误解:这很有效!谢谢这实际上澄清了一些代码,我也不确定在项目的其他地方看到了什么。我还让.on()也能工作\
    $(document).ready(function(){
    
        // using .click instead of .delegate
        // .on('click', buttonClick) would work too
        $('#but').click( buttonClick );
        // no calling parentheses  -^
    
        function buttonClick(){
            $('#res').hide().html("BUTTON!!!").fadeIn('fast');
            alert("Hello!");
        }
    });
    // added missing ) at the end
    
    $(document).ready(function(){
        $.delegate('#but', 'click', buttonClick());
    
        function buttonClick(){
            $('#res').hide().html("BUTTON!!!").fadeIn('fast');
            alert("Hello!");
        };
    });