Javascript Jquery效果在.load之后消失
我正在使用此脚本在我的内容上添加一些效果(翻转效果和选项卡) 有没有办法不否定它们?有些主题使用了on()函数,但我不知道如何在这里使用它。如果可能的话,我希望它不必事先点击任何地方就可以工作 是指向该站点的链接。只有页面Acceuil和Semaine Prochaine起作用。快速翻转用于第二个。 在Acceuil上也应该有一些效果(如),但效果仅在第一次加载时起作用 以下是更新的解决方案:Javascript Jquery效果在.load之后消失,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在使用此脚本在我的内容上添加一些效果(翻转效果和选项卡) 有没有办法不否定它们?有些主题使用了on()函数,但我不知道如何在这里使用它。如果可能的话,我希望它不必事先点击任何地方就可以工作 是指向该站点的链接。只有页面Acceuil和Semaine Prochaine起作用。快速翻转用于第二个。 在Acceuil上也应该有一些效果(如),但效果仅在第一次加载时起作用 以下是更新的解决方案: function loadContent(href) { $mainContent
function loadContent(href) {
$mainContent
.find("#guts")
.fadeOut(200, function () {
$mainContent.hide().load(href + " #guts", function () {
$.getScript('js/jquery.quickflip.min.js', function () {
$('#flip-container').quickFlip();
$('#flip-navigation li a').each(function () {
$(this).click(function () {
$('#flip-navigation li').each(function () {
$(this).removeClass('selected');
});
$(this).parent().addClass('selected');
var flipid = $(this).attr('id').substr(4);
$('#flip-container').quickFlipper({}, flipid, 1);
return false;
});
});
});
$.getScript('tablecloth/tablecloth.js', function () {
tablecloth();
});
$mainContent.fadeIn(200, function () {
$pageWrap.animate({
height: baseHeight + $mainContent.height() + "px"
});
});
$("nav a").removeClass("current");
console.log(href);
$("nav a[href$=" + href + "]").addClass("current");
});
});
}
我认为您需要将代码添加到执行加载的函数中,而不是添加到文档中。就绪:
$('#result').load('ajax/test.html', function() {
$('#flip-container').quickFlip();
$('#flip-navigation li a').each(function () {
$(this).click(function () {
$('#flip-navigation li').each(function () {
$(this).removeClass('selected');
});
$(this).parent().addClass('selected');
var flipid = $(this).attr('id').substr(4);
$('#flip-container').quickFlipper({}, flipid, 1);
return false;
});
});
});
});
显然,$('#result').load('ajax/test.html',function()
需要修改以匹配您对load
的调用
这是因为当您尝试附加quickFlip
时,#flip container
不存在。您必须在调用$(“#flip container”).quickFlip()
完成并检索到您想在其上使用的HTML后调用quickFlip
。请尝试此代码
$( document ).ready(function() {
$('#flip-container').quickFlip();
$('#flip-navigation li a').each(function () {
$(this).on("click",function () {
$('#flip-navigation li').each(function () {
$(this).removeClass('selected');
});
$(this).parent().addClass('selected');
var flipid = $(this).attr('id').substr(4);
$('#flip-container').quickFlipper({}, flipid, 1);
return false;
});
});
});
我已将
单击事件更改为on
如果您正在动态添加内容,它将帮助您。您是否通过javascript向页面动态添加内容?您的“加载”语句是什么意思?您需要为这些动态添加的项目委派事件,然后…哪个元素您是否在?P.S.上使用了.load()
。另外,您不需要这两个.each()
循环。您只需说$(“#翻转导航li a”)。单击(…
和$(“#翻转导航li”)。removeClass('selected'))
很抱歉,我忘记了站点的链接,请查看更新后的帖子。我正在使用load动态更改页面..on()用于事件而不是插件,您需要在新添加的元素上重新初始化插件。为此,请使用load回调函数。顺便说一句,在使用load()的地方发布相关代码方法谢谢你的回答,我把它放在ligne$mainContent.hide().load(href+“#guts”,function(){
只有在我首先加载页面Semaine Prochaine时才有效,但是如果我首先加载Acceuil,那么第二个甚至不会显示。我找到了解决方案,我必须添加这个:$.getScript('js/jquery.quickflip.min.js',function(){
谢谢你的回答,但它仍然有相同的行为。你可以分享你的HTML或尝试给js Fiddle演示。你可以找到源代码,至于js Fiddle,我由于某种原因无法让它工作。
$('#result').load('ajax/test.html', function() {
$('#flip-container').quickFlip();
$('#flip-navigation li a').each(function () {
$(this).click(function () {
$('#flip-navigation li').each(function () {
$(this).removeClass('selected');
});
$(this).parent().addClass('selected');
var flipid = $(this).attr('id').substr(4);
$('#flip-container').quickFlipper({}, flipid, 1);
return false;
});
});
});
});
$( document ).ready(function() {
$('#flip-container').quickFlip();
$('#flip-navigation li a').each(function () {
$(this).on("click",function () {
$('#flip-navigation li').each(function () {
$(this).removeClass('selected');
});
$(this).parent().addClass('selected');
var flipid = $(this).attr('id').substr(4);
$('#flip-container').quickFlipper({}, flipid, 1);
return false;
});
});
});