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