jQuery在上一个函数中通过ajax加载的元素上运行

jQuery在上一个函数中通过ajax加载的元素上运行,jquery,ajax,Jquery,Ajax,我知道使用了.ajaxComplete,但是我使用的代码独立于运行ajax的函数 我也知道.live,但这是不推荐的 我有一个在一些HTML中加载的函数,包括一个名为main.home 在另一个函数中,我想使main.home.slideDown /* First function loads the HTML */ $(document).ready(function() { $("#quiz-section").load("home.php"); $( document ).

我知道使用了
.ajaxComplete
,但是我使用的代码独立于运行ajax的函数

我也知道
.live
,但这是不推荐的

我有一个在一些HTML中加载的函数,包括一个名为
main.home

在另一个函数中,我想使
main.home
.slideDown

/* First function loads the HTML */
$(document).ready(function() {
    $("#quiz-section").load("home.php");
    $( document ).ajaxComplete(function() {
        $( ".inner-wrap" ).fadeIn(2000);
    });
});

/* Second function called on button click */
function nextQuestion(page){
    $("main.home").slideDown("fast");
}
.slideDown
似乎不起作用,但控制台中没有出现错误。我相信它可能找不到元素
main.home
,因为它是通过ajax加载的

谢谢你的建议

编辑以根据请求添加对
nextQuestion
的调用:

<div class="button pink" onclick="nextQuestion('q1');" >Take our 'Love Match' test</div>
参加我们的“爱情匹配”测试
如此粗鲁地要求的HTML只不过是:

<main class="home">
<div class="button pink" onclick="nextQuestion('q1');" >Take our 'Love Match' test</div>
</main>

参加我们的“爱情配对”测试
好了。

向下滑动该怎么办

它通过滑动动作使可见成为隐藏元素

所以,你应该有这个:

HTML:

<main class="home" style="display:none;">
    Some stuff here
</main>
<div id="clickme" class="button pink">Take our 'Love Match' test</div>

“这里有些东西”是隐藏的,当你点击链接时,它会使你的主元素以幻灯片的形式出现。

从哪里调用
nextQuestion
?听起来你确实需要使用一个委托事件处理程序,以防你错过了一个#或。在main.home前面?@溢出否:@RoryMcCrossan
nextQuestion
是通过单击按钮(使用
onclick
)加载的,可以确认函数是否正确运行,是否已使用console.log进行检查,是否加载了正确的函数,只是没有执行
slideDown
@Francesca,所以你从内联onclick属性中调用它还是什么?
$("#clickme").click(function() {
    $("main.home").slideDown("fast");
});