所以我刚开始使用jQuery,这些功能让我很困惑。我希望能够只是命名一个jQuery函数,然后调用它,而不说它何时应该在函数中调用。我看了,似乎无法理解任何答案。我的代码如下:
<script type="text/javascript">
$(function() {
$('a').click(function() {
$('#box').slideUp();
});
});
</script>
我希望它能做更像这样的事情:
$(function slideBox() {
$('#box').slideUp();
});
</script>
然后通过OnClick事件或按钮上的某些内容调用它。
答案 0 :(得分:7)
jQuery只是一个基于Javascript的库,你仍然可以在其中使用jQuery代码的常规函数。大多数示例属于$(function() { ... });
种类的原因是因为Javascript通常是基于事件的,并且对于jQuery的事情最常见的时间是页面加载,$(function() { });
是一个快捷方式。
关于jQuery的一个好处是它可以让你编写不引人注目的Javascript,你真的不应该在任何HTML元素的onclick
中放置任何代码,因为它是一个非常糟糕的做法和维护噩梦。更标准的方法是:
<input type="button" id="slideMeUp" value="Up, up, and away!">
$(function() {
$('#slideMeUp').click(function() {
$('#box').slideUp();
});
});
但是,你可以很容易地得到类似的东西:
function slideMeUp() {
$('#box').slideUp();
}
$(function() {
// still need this outer function to indicate
// to only bind the handler when the DOM is ready
$('#slideMeUp').click(slideMeUp);
});
答案 1 :(得分:1)
你在jQuery之间混淆了,jQuery是一个Javascript库和整个Javascript。
要在Javascript中编写函数slideBox(),您只需:
function slideBox() {
$("#box").slideUp();
}
答案 2 :(得分:1)
您通常需要
$(function() {
..
});
这是$(document).ready(function(){})的缩写,在页面加载时运行。
你可以这样做:
function slideBox(speed){ $( “#箱”)效果基本show(速度)。 } $(function(){ slideBox(300); });或者您可以创建自己的插件:
(function($) {
$.fn.FunctionName = function() {
return this.each(function() {
$(this).slideUp();
});
};
})(jQuery);
您可以将其保存在单独的文件中,然后执行以下操作:
<script>
$(function() {
$("#box").FunctionName();
});
</script>
看看这个:
答案 3 :(得分:0)
JavaScript函数和jQuery函数之间没有任何区别;这是相同的技术。
如果要定义一个滑动框的功能,只需编写一个,然后将其连接到onclick事件。我就是这样做的:
<script type="text/javascript">
function slideBox() {
$('#box').slideUp();
}
$(function() {
$('a').click(function() {
slideBox();
});
// or, as Paolo shows:
$('a').click(slideBox);
});
</script>
$(function() { });
语法简称:
$(document).ready(function() {
// do things when the DOM is ready
});
无论你放入什么内容都会延迟,直到DOM完成加载。如果后者对你更有意义,那就改用它。
答案 4 :(得分:0)
您可以定义一个函数并将其传递给click处理程序:
<script type="text/javascript">
function onClick() {
$('#box').slideUp();
}
$("#MyButton").click(onClick);
</script>
答案 5 :(得分:0)
使用原始功能,即
<script type="text/javascript">
$(function() {
$('.uniqueclass').click(function() {
$('#box').slideUp();
});
});
</script>
我已将'a'更改为'uniqueclass' 然后 使用.uniqueclass类创建一个按钮 - 单击它时,该函数将触发
答案 6 :(得分:0)
您不希望在全局范围内声明您的函数(作为一般规则),因此您可以在jQuery的文档中声明它并通过事件访问您的函数:
<script type="text/javascript">
// jQuery document's ready
$(function() {
// your function
var slideBox = function() {
$('#box').slideUp();
};
// event
$('a').click(function() {
// call to your function
slideBox();
});
});
</script>