Javascript jQuery验证冲突其他jQuery代码
当用户将鼠标悬停在他们的个人资料图片上时,我正在使用jquerycaptify库添加一个简单的“编辑个人资料照片”链接。显示为标题的文本是我想在fancybox模式窗口中显示的链接。出于某种原因,captify会阻止链接绑定到fancybox,并始终执行尝试加载页面的默认链接事件。这适用于页面上的任何链接,我通过添加$('a')对其进行了测试因此,在调用captify后尝试设置任何其他事件处理程序时,captify似乎造成了问题。有人知道是什么导致了这一切吗?或者,如果它可能与我正在使用的jquery版本(1.4.1)不兼容,请验证 这是html结构,其中div#change_pic成为覆盖在图像顶部的标题:Javascript jQuery验证冲突其他jQuery代码,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,当用户将鼠标悬停在他们的个人资料图片上时,我正在使用jquerycaptify库添加一个简单的“编辑个人资料照片”链接。显示为标题的文本是我想在fancybox模式窗口中显示的链接。出于某种原因,captify会阻止链接绑定到fancybox,并始终执行尝试加载页面的默认链接事件。这适用于页面上的任何链接,我通过添加$('a')对其进行了测试因此,在调用captify后尝试设置任何其他事件处理程序时,captify似乎造成了问题。有人知道是什么导致了这一切吗?或者,如果它可能与我正在使用的jqu
<div id = "avatar">
<img src="http://localhost/media/images/silhouette110x110.gif" alt="profile photo" class="captify" rel="change_pic" /> <div id="change_pic">
<a href="http://localhost/image/manage" class="pic_manager">Change your photo</a> </div>
</div>
Javascript如下所示:
//jquery 1.4.1 already loaded
<script type="text/javascript" src="http://localhost/media/js/fancybox/jquery.fancybox-1.3.1.pack.js"></script>
<script type="text/javascript" src="http://localhost/media/js/fancybox_init.js"></script>
<link rel="stylesheet" type="text/css" href="http://localhost/media/css/captify.css" />
<script type="text/javascript" src="http://localhost/media/js/captify.tiny.js"></script>
<script type = "text/javascript">
$(document).ready(function(){
$('img.captify').captify({
// caption span % of the image
spanWidth: '90%'
});
$("a.pic_manager").fancybox();
});
</script>
//jquery 1.4.1已加载
$(文档).ready(函数(){
$('img.captify')。captify({
//图像的标题跨度%
跨度宽度:“90%”
});
$(“a.pic_manager”).fancybox();
});
问题似乎与使用remove()而不是detach()有关,即删除以前附加到DOM元素的所有事件
我在captify.js(v.1.1.3)中修改了这些代码行
与
您是否在控制台中看到任何JavaScript错误?这看起来很可能是你的症状。没有错误,但我刚刚在Firefox上测试过,没有问题。问题似乎出在Chrome上…奇怪的NoScript或者其他插件上?
var captionLabelSrc = $('#' + $(this).attr('rel'));
var captionLabelHTML = !captionLabelSrc.length ? $(this).attr('alt') : captionLabelSrc.html();
captionLabelSrc.remove();
var captionLabelSrc = $('#' + $(this).attr('rel')).detach();
var captionLabelHTML = !captionLabelSrc.length ? $(this).attr('alt') : captionLabelSrc;
//captionLabelSrc.remove();