我有这个简单的jquery代码。单击后,它会获得标签的URL,将页面加载到当前内容旁边,然后滑动并删除旧内容。页面的状态与以前完全相同,相同的元素没有额外的类或样式。问题在于下一个ajax调用不起作用。也许我需要.unbind()吗?
我是jquery和javascript的新手,所以我很迷路。非常感谢你的帮助 :)
<script type="text/javascript">
$(document).ready(function(){
loadPage();
});
function loadPage(url) {
if (url == undefined) {
$('body').load('index.html header:first,#content,footer', hijackLinks);
} else {
$.get(url , function(data) {
$('body').append(data);
$('body>meta').remove();
$('body>link').remove();
$('body>title').remove();
$('body').append(direction);
sm = $(window).width();
if(direction == "leftnav"){
$('body>header:last,body>#content:last,footer:last').css("left", "-" + sm + "px");
footerheight = $('body>#content:last').outerHeight(false) + $('body>header:last').outerHeight(true) ;
$('footer:last').css("top", footerheight);
$('body>header,body>#content,footer').css("-webkit-transition-duration","0.5s")
$('body>header,body>#content,footer').css("-webkit-transform","translate(" + sm + "px,0px)");
};
if(direction != "leftnav"){
$('body>header:last,body>#content:last,footer:last').css("left", sm + "px");
footerheight = $('body>#content:last').outerHeight(false) + $('body>header:last').outerHeight(true) ;
$('footer:last').css("top", footerheight);
$('body>header,body>#content,footer').css("-webkit-transition-duration","0.5s")
$('body>header,body>#content,footer').css("-webkit-transform","translate(-" + sm + "px,0px)");
};
setTimeout(function(){
$('body>header:not(:last),body>footer:not(:last),body>#content:not(:last)').remove()
},500);
setTimeout(function() {
$('body>header,body>footer,body>#content').removeAttr('style')
},500);
});
}
}
function hijackLinks() {
$('a').click(function(e){
e.preventDefault();
loadPage(e.target.href);
direction = $(this).attr('class');
});
}
</script>
由于您正在动态加载内容,因此替换body
事件处理程序的内容的可能性极高。
要解决此问题,您需要调整点击处理程序以使用live()
或delegate()
$('a').live("click", function(e){
e.preventDefault();
loadPage(e.target.href);
direction = $(this).attr('class');
});
15.2 仅执行一次的工作调度 首先,我们先来谈谈单一工作调度的运行,那就是 at 这个指令的运行! 15.2.1 atd 的启动与 at 运行的方式 要使用单一工作调度时,我们的 Linux 系统上面必须要有负责这个调度的服务,那就是 atd 这个玩意儿。 不过并非所有的 Linux distributions 都默认会把他打开的,所以呢,某些时刻我们必须要手动将他启用才行。 启用的方法很简单,
我是胡克斯的新手,遇到了一些让我追自己尾巴的案例。 希望有人能解释或提供对我有意义的解决方案: > 下面这个线程:如何调用加载函数与反应使用效果只有一次 我试着在没有依赖性的情况下使用useEffect,eslint不喜欢这样,他们建议添加一个“跳过下一行”,这似乎有点骇人:
问题内容: 我正在开发我的第一个android计算器应用程序。我陷入一个单一的缺陷。我添加了几个按钮,然后单击这些按钮,它将把各自的文本放在“ 字段”上。主要问题描述如下:在运行项目时,必须单击两次按钮才能将相应的文本首次放置在字段上。例如,单击时将“ 1”放在字段上。在运行时,首先单击该按钮无效。仅在第二次单击时,它将“ 1”放在字段上。 该守则如下: XML按钮和EditField, Main
我当时正在开发一个Spring批处理应用程序,使用java配置执行两个批处理作业。最近,我添加了一个Spring调度程序来调度我编写的一个作业。侦听器在作业第一次完成时被调用,但在下一次执行后不会被调用。以下是我的作业配置代码: 下面是我的调度程序的代码: 我的听众如下: 以下是控制台输出: 请告诉我我做错了什么,为什么听者没有被执行后续尝试。
我已经尝试创建新的空项目(Gradle)。它也不起作用。你知道吗?
当我把逻辑放在一个可运行的线程中时,它工作得很好,只是我不能与UI线程交互。所以我试图把所有的东西都放在一个类中,这个类扩展了Task,除了Task只执行一次之外,其他的都可以工作。没有错误,我从Task successed方法获得一条successed消息。 我还尝试在call方法中使task return Boolean为true,但这没有帮助。 请注意,此代码实际上存在于控制器中,但我将其放