我没有编写此代码,并且我无法弄清楚为什么在第一个 e.preventDefault()
处出现以下错误。我尝试在 .click
事件处理程序中移动该代码,将其传递给 function(e){}
,并将其替换为 return false
,声明它 var e = $(this.href)
(别笑,我正在努力学习),我已经检查了 a href< 中返回的值
并且它返回正确的哈希
。视频可以播放,但运行 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);
}
最佳答案
应该是
$("a.modal").click(function(e) { // Note the "e" parameter
// etc
});
... 相反,就像在第二个单击处理程序中一样。看,这两个函数都是由 jQuery Event object 提供的。 (原生 Event object 的包装器)作为第一个参数。但您仍然必须让 JavaScript 知道您的函数中将如何准确地引用此参数。 )
关于调用 e.preventDefault() 时,javascript 错误 "e"未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12271822/