为 onClick of 按钮定义的所有函数都被调用
All the functions defined for onClick of button are getting called
我在jsp和js中有以下代码。正在发生的事情是,无论我单击哪个按钮,都会调用这两个 javascript 函数。我不确定我在这里错过了什么?
.HTML:
<a type="button" id="scrollOffsetDiv" href="dashboard?offloglag=off&duration=${duration}#offset">Offset</a>
<a type="button" id="scrollMsgDiv" href="dashboard?offloglag=off&duration=${duration}#offset">Msg</a>
.JS:
$(document).on("click","#scrollOffsetDiv", setTimeout(scrollOffsetDiv,3000));
function scrollOffsetDiv() {
var scrollTop = $(window).scrollTop(),
elementOffset = $('#offset').offset().top,
scrollDistance = (scrollTop-elementOffset);
alert("2222222222");
$('html, body').animate({
scrollTop: scrollDistance
}, 200);
}
$(document).on("click","#scrollMsgDiv", setTimeout(scrollMsgDiv,3000));
function scrollMsgDiv() {
var scrollTop = $(window).scrollTop(),
elementOffset = $('#msgsbytesinpersec').offset().top,
scrollDistance = (scrollTop-elementOffset);
alert("33333333");
$('html, body').animate({
scrollTop: scrollDistance
}, 200);
}
添加 jsfiddle 链接。
我能够让它使用这个jQuery代码:
$("#scrollOffsetDiv").click(function(){ setTimeout(scrollOffsetDiv,3000); });
function scrollOffsetDiv() {
alert("2222222222");
}
$("#scrollMsgDiv").click(function() { setTimeout(scrollMsgDiv,3000) });
function scrollMsgDiv() {
alert("33333333");
}
虽然我相信主要问题只是需要将您的setTimeout
功能包装在function(){}
中。没有该包装器似乎仅适用于对函数的非参数化调用......如果您使用变量调用函数,请将其包装在 function(){}
中。
任何人想提高我在这个问题上的词汇量,请随意。我只是通过观察才知道这一点。
一种更优雅的编写方式可能是:
$("#scrollOffsetDiv").click(function(){ setTimeout(function(){
var scrollTop = $(window).scrollTop(),
elementOffset = $('#offset').offset().top,
scrollDistance = (scrollTop-elementOffset);
alert("2222222222");
$('html, body').animate({
scrollTop: scrollDistance
}, 200);
},3000); });
$("#scrollMsgDiv").click(function() { setTimeout(function(){
var scrollTop = $(window).scrollTop(),
elementOffset = $('#msgsbytesinpersec').offset().top,
scrollDistance = (scrollTop-elementOffset);
alert("33333333");
$('html, body').animate({
scrollTop: scrollDistance
}, 200);
},3000) });
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何在Javascript函数调用中循环变量
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 如何远程检查JavaScript应用程序的函数调用堆栈
- javascript函数调用不起作用
- 为什么这个函数调用会破坏程序并导致未定义的变量
- 如何通过函数调用设置图像的src
- 从全局函数调用Ember控制器上的方法
- 为什么Jquery$.ajax在函数调用中触发所有statusCode,即使调用成功
- JavaScript函数调用(arg1)(arg2)
- 打印链接时,将javascript函数调用到链接中
- 在函数调用中封装数据除了隐藏数据之外还有什么优点
- 无法从JavaScript中的函数调用对象属性
- 对中的函数调用进行排序是回调的唯一方法
- 函数调用方法有什么用
- Javascript:JSHint:应为赋值或函数调用,但实际看到的却是表达式
- HTML5(Bootstrap)通过函数调用运行动画
- 函数调用不起作用
- 函数中的Javascript函数调用