Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jQuery链中调用JavaScript函数_Javascript_Jquery - Fatal编程技术网

在jQuery链中调用JavaScript函数

在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

当然,该函数不称为“call”

**编辑**

(代表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){
回调();
//}
});
});
});

默认情况下,您不能这样做,但您可以轻松地将其添加为插件:

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