在jQuery链中调用JavaScript函数
当然,该函数不称为“call” **编辑** (代表OP添加了解决方案) 解决方案 或 HTML:在jQuery链中调用JavaScript函数,javascript,jquery,Javascript,Jquery,当然,该函数不称为“call” **编辑** (代表OP添加了解决方案) 解决方案 或 HTML: 这是一篇文章 JavaScript: <div id="content"> <p class="article"> this is an article </p> </div> <div id="content"> <p class="article"> th
这是一篇文章
JavaScript:
<div id="content">
<p class="article">
this is an article
</p>
</div>
<div id="content">
<p class="article">
this is an article
</p>
</div>
函数回调(){
$(“#content.article”).html(“已调用回调”);
}
$(文档).ready(函数(){
$(#content.article”).slideUp(0);
$(“#content.article”)。每个(函数(i){
$(this).delay(i*250).slideDown(函数(){
//if($(“#content.article:animated”).length<1){
回调();
//}
});
});
});
默认情况下,您不能这样做,但您可以轻松地将其添加为插件:
function callBack() {
$("#content .article").html("the callback has been called");
}
$(document).ready(function() {
$("#content .article").slideUp(0);
$("#content .article").each(function(i) {
$(this).delay(i*250).slideDown(function(){
//if ($("#content .article:animated").length < 1) {
callBack();
//}
});
});
});
虽然我不知道你为什么要这么做。如果您认为它在完成
幻灯片之后才会运行,那么您就错了,因为jQuery动画是异步的。默认情况下您不能这样做,但您可以轻松地将其添加为插件:
function callBack() {
$("#content .article").html("the callback has been called");
}
$(document).ready(function() {
$("#content .article").slideUp(0);
$("#content .article").each(function(i) {
$(this).delay(i*250).slideDown(function(){
//if ($("#content .article:animated").length < 1) {
callBack();
//}
});
});
});
虽然我不知道你为什么要这么做。如果您认为在完成幻灯片之后才能运行,那么您就错了,因为jQuery动画是异步的。为什么不使用回调函数呢?几乎所有jquery函数都有它们
$.fn.call = function (fn, args, thisp) {
fn.apply(thisp || this, args);
return this; // if you want to maintain chainability -- other wise, you can move the return up one line..
}
为什么不直接使用回调函数呢?几乎所有jquery函数都有它们
$.fn.call = function (fn, args, thisp) {
fn.apply(thisp || this, args);
return this; // if you want to maintain chainability -- other wise, you can move the return up one line..
}
调用jsFunc()的目标是什么
如果希望它作为回调,可以使用给定的sysntax
例:
但是,如果您希望函数jsFunc能够作为插件调用,则需要按照CD Sanchez的建议编写一个插件
我再次认为示例代码中存在一个问题,即调用函数jsFunc并将jsFunc返回的值作为参数传递给调用函数。如果希望将函数jsFunc作为回调函数传递,则需要使用以下语法
$('#node').slidedown('normal', function(){jsFunc()}).
调用jsFunc()的目标是什么
如果希望它作为回调,可以使用给定的sysntax
例:
但是,如果您希望函数jsFunc能够作为插件调用,则需要按照CD Sanchez的建议编写一个插件
我再次认为示例代码中存在一个问题,即调用函数jsFunc并将jsFunc返回的值作为参数传递给调用函数。如果希望将函数jsFunc作为回调函数传递,则需要使用以下语法
$('#node').slidedown('normal', function(){jsFunc()}).
在链中使用回调的全部原因是,它将在所有动画触发器发生后运行
$("#content article").each(function(i) {
$(this).delay(i*250).slideDown();
}).callBack();
在链中使用回调的全部原因是,它将在所有动画触发器发生后运行
$("#content article").each(function(i) {
$(this).delay(i*250).slideDown();
}).callBack();
在链中使用回调的全部原因是,它将在所有动画发生后运行
$("#content article").each(function(i) {
$(this).delay(i*250).slideDown();
}).callBack();
试试这个
$("#content article").each(function(i) {
$(this).delay(i*250).slideDown();
}).callBack();
$(“#content.article”)。每个(函数(i){
$(this).delay(i*250).slideDown(函数(){
if($(“#content.article:animated”).length<1){
回调();
}
});
});
在链中使用回调的全部原因是,它将在所有动画发生后运行
$("#content article").each(function(i) {
$(this).delay(i*250).slideDown();
}).callBack();
试试这个
$("#content article").each(function(i) {
$(this).delay(i*250).slideDown();
}).callBack();
$(“#content.article”)。每个(函数(i){
$(this).delay(i*250).slideDown(函数(){
if($(“#content.article:animated”).length<1){
回调();
}
});
});
(代表OP添加了解决方案)
解决方案
或
HTML:
这是一篇文章
JavaScript:
<div id="content">
<p class="article">
this is an article
</p>
</div>
<div id="content">
<p class="article">
this is an article
</p>
</div>
函数回调(){
$(“#content.article”).html(“已调用回调”);
}
$(文档).ready(函数(){
$(#content.article”).slideUp(0);
$(“#content.article”)。每个(函数(i){
$(this).delay(i*250).slideDown(函数(){
//if($(“#content.article:animated”).length<1){
回调();
//}
});
});
});
(代表OP添加了解决方案)
解决方案
或
HTML:
这是一篇文章
JavaScript:
<div id="content">
<p class="article">
this is an article
</p>
</div>
<div id="content">
<p class="article">
this is an article
</p>
</div>
函数回调(){
$(“#content.article”).html(“已调用回调”);
}
$(文档).ready(函数(){
$(#content.article”).slideUp(0);
$(“#content.article”)。每个(函数(i){
$(this).delay(i*250).slideDown(函数(){
//if($(“#content.article:animated”).length<1){
回调();
//}
});
});
});
为什么要这样做?也许有更好的方法来做你想做的事情。嗯,现在就用setTimeout。不是我想走的路,但它行得通。你为什么要这么做?也许有更好的方法来做你想做的事情。嗯,现在就用setTimeout。不是我想要的方式,但它可以工作。$('#node')。slidedown('normal',jsFunc)
好吧,末尾的anon func允许实际将警报()放入其中,而不是进行函数调用。$('#node')。slidedown('normal',jsFunc)
好吧,末尾的anon func允许实际放置警报()你是在回答你自己的问题吗?不清楚这是问题的答案还是补充。杰克逊克,你能澄清一下吗?如果您不记得,我建议删除此选项,因为您有另一个满意的答案(我已将其从Q移到了答案本身)。不,在链上运行不会使其在动画发生后运行。@Reigel该措辞具有误导性。我的意思是动画触发,而不是动画循环。谢谢你让我注意到这一点。你是在回答你自己的问题吗?不清楚这是对问题的回答还是补充。杰克逊克,你能澄清一下吗?如果你不记得了,我建议删除这个,sin