【发布时间】:2018-10-01 12:45:51
【问题描述】:
我的“inc”文件夹中有页面,当我点击“触发器”时,#wrapper 会将所选页面加载到#wrapper 中。我的问题是;
每当我点击#wrapper 之外的“触发器”时,它都会起作用。内容将加载到#wrapper 中。但是当我在#wrapper 中有“触发器”时,它就不起作用了。
我在这个问题上停留了一段时间。
JS代码:
$(document).ready(function() {
// Initial
$('#wrapper').load('inc/home.php');
});
$(document).ready(function() {
// Set trigger and container variables
var trigger = $('#test a'),
container = $('#wrapper');
// Fire on click
trigger.click(function() {
var target = $(this).attr('href');
// Begin fade
setTimeout(function(){ $('#wrapper').css("opacity", "0"); }, 0);
// Load target page into container
setTimeout(function(){ container.load('inc/' + target + '.php'); }, 400);
// End fade
setTimeout(function(){ $('#wrapper').css("opacity", "1"); }, 900);
// Stop normal link behavior
return false;
});
});
【问题讨论】:
-
如果您的意思是您的触发元素位于#wrapper div 和加载的html 中,那么您每次执行
.load()调用时都会销毁并创建一个新元素。事件侦听器在元素的新实例中不是持久的。 Event binding on dynamically created elements 的可能重复项
标签: javascript jquery ajax load