我没有编写这段代码,而且我无法弄清楚为什么我会在第一个e.preventDefault()
时得到以下错误。我尝试在.click
事件处理程序中移动该代码,将其传递给function(e){}
,将其替换为return false
,声明var e = $(this.href)
(不要笑,我“我正在努力学习”,我已检查a href
中返回的值,并返回正确的hash
。视频播放,但是当我运行IE调试器时,我收到此错误。有人请告诉我如何正确调试和修复此问题。感谢
HTML
<a href="#video1" class="blueBtn modal" style="width:150px;"><span>Watch Video <img width="10" height="17" src="images/bluebtn.png"></span></a></div>
的Javascript
// FANCY BOX
$("a.modal").click(function(){
var inline=$(this).attr('href');
$.fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none',
'href' : inline,
'onComplete' : function(){
$(inline+' .flowPlayer').videoPlayer();
$.fancybox.center(true);
},
'onClosed' : function(){loc();}
});
e.preventDefault();
});
$(".print").click(function(e){
window.open("print-docs/"+$(this).parent().attr('id')+".html","print","width=1,height=1");
e.preventDefault();
});
function loc(){
var location=window.location.href;
var replaceHash=location.replace(document.location.hash,"");
window.location.assign(replaceHash);
}
答案 0 :(得分:5)
应该是
$("a.modal").click(function(e) { // Note the "e" parameter
// etc
});
...相反,就像在第二次点击处理程序中一样。请参阅,这两个函数都随jQuery Event object(本机Event object的包装器)一起提供,作为第一个参数。但您仍然必须让JavaScript知道您的函数中将引用此参数的确切方式。 )
答案 1 :(得分:3)
您需要自己添加e
参数:
$("a.modal").click(function(e){ //<------- right there
var inline=$(this).attr('href');
$.fancybox({
'transitionIn' : 'none',
'transitionOut' : 'none',
'href' : inline,
'onComplete' : function(){
$(inline+' .flowPlayer').videoPlayer();
$.fancybox.center(true);
},
'onClosed' : function(){loc();}
});
e.preventDefault();
});
答案 2 :(得分:2)
您错过了e
参数:
$("a.modal").click(function(e){
e.preventDefault();
}