我正在尝试将隐藏的div容器中的内容加载到活动容器中。这应该是这么简单。我使用旧的jQuery工作的代码很好,但最新版本已经破解了。我在这里缺少什么?
这是我在JSFiddle中的代码 http://jsfiddle.net/poaw07w4/
$('.campuslink').live('click', function () {
var id = $(this).attr("id").replace(/^.(\s+)?/, "");
var contentTobeLoaded = $("#faq_" + id).html();
$('#campusfaq').fadeOut(600,function(){
$('#campusfaq').html(contentTobeLoaded).fadeIn(500, function () {
});
});
e.preventDefault();
答案 0 :(得分:1)
版本1.7中不推荐live
method,版本1.9中删除了on
method。您可以使用http://jsfiddle.net/poaw07w4/3/创建委派事件。 (别忘了e
参数):
$(document).on('click', '.campuslink', function (e) {
演示:http://plnkr.co/edit/E3MPAt39LCCswg9N4V9T?p=preview
注意:在文档元素上绑定事件对应于live
的工作方式。如果可能,您应该使用更靠近发生事件的元素的元素,以减少开销。
答案 1 :(得分:0)
尝试使用.on('点击')代替.live('点击')
https://jsfiddle.net/dotnetmensch/poaw07w4/1/
$('.campuslink').on('click', function () {
var id = $(this).attr("id").replace(/^.(\s+)?/, "");
var contentTobeLoaded = $("#faq_" + id).html();
$('#campusfaq').fadeOut(600, function () {
$('#campusfaq').html(contentTobeLoaded).fadeIn(500, function () {});
});
e.preventDefault();
});
答案 2 :(得分:0)
自JQuery 1.7(more here)以来,不推荐使用live()方法。如果用on()方法替换它,它应该工作正常(还要注意preventDefault()被移动):
$('.campuslink').on('click', function (e) {
e.preventDefault();
var id = $(this).attr("id").replace(/^.(\s+)?/, "");
var contentTobeLoaded = $("#faq_" + id).html();
$('#campusfaq').fadeOut(600,function(){
$('#campusfaq').html(contentTobeLoaded).fadeIn(500, function () {
});
});