您好我在索引页面上加载了几个html页面,具体取决于点击了什么链接。我有一个问题,链接有asocietted点击事件处理程序。似乎在jQuery加载html文件后,该html中的链接没有绑定事件处理程序绑定到他们。 这是我的代码:
这是其中一个不起作用的链接的html:
<a href="#" id="NavContactPage" data-sectionId="Skills">skills</a>
这是与之相关的jquery代码:
$("nav a , a.first_anchor , a#NavContactPage").click(function(){
var id = $(this).attr("data-sectionId");
var link = "load/" + id + ".html";
$("div#Content").load(link , function(){
$("section#" + id).fadeIn();
if(id === "Portfolio"){
$('div.slide').cycle('fade');
}
if(id === "Home"){
$("#jcycleslider").cycle({
fx: mtransition,
easing: easing,
before: onBefore,
after: onAfter,
speed: mpace,
timeout: mnext,
sync: msync,
randomizeEffects:0,
pager:'#jslider_nav'
})
$("#jslider_nav a").text("");
}
})
return false;
})
我该如何解决这个问题?
答案 0 :(得分:10)
$("selector").click(...)
仅将click
事件的回调注册到查询时jQuery可见的元素。因此,对于与此选择器匹配的新添加元素,将不会应用回调。
您需要再次将注释重新注册到新添加的元素,或者您需要使用:
$(document).on('click',"nav a , a.first_anchor , a#NavContactPage", ... );
不建议以root身份使用文档,而是建议使用例如您将内容加载到root的元素,例如$("div#Content").on( .... );
答案 1 :(得分:4)
据我了解,你应该使用.on():
代表团$(document).on('click',"nav a , a.first_anchor , a#NavContactPage",function(){...}
答案 2 :(得分:3)
遇到了这个问题。我把它放在我准备好的功能中,它对我有用
drawRect(rect: CGRect) {
let ctx: CGContext? = UIGraphicsGetCurrentContext()
let radius: CGFloat = rect.width / 2
let endAngle = CGFloat(2 * M_PI)
CGContextAddArc(ctx, bounds.width / 2, bounds.height / 2, radius, 0, endAngle, 1)
CGContextSetStrokeColorWithColor(ctx, UIColor.blackColor().CGColor)
CGContextSetFillColorWithColor(ctx, UIColor.whiteColor().CGColor)
CGContextSetLineWidth(ctx, 4.0)
CGContextDrawPath(ctx, CGPathDrawingMode.FillStroke)
}
答案 3 :(得分:0)
您是否准备好在jquery上准备事件?
您的事件绑定代码应位于内部并使用而不是单击。我认为这应该可以解决你的问题。
$(function(){
// Bind event here
});