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前面?@溢出否:@RoryMcCrossannextQuestion
是通过单击按钮(使用onclick
)加载的,可以确认函数是否正确运行,是否已使用console.log进行检查,是否加载了正确的函数,只是没有执行slideDown
@Francesca,所以你从内联onclick属性中调用它还是什么?
$("#clickme").click(function() {
$("main.home").slideDown("fast");
});