我在我的网站上实现了Bootstrap(Twitter),我遇到了Slider的问题。它在IE以外的所有浏览器中运行良好。以下是错误:
Message: 'target' is undefined
以下是JS,它会触发错误:
$(this).find('.arrow-right').each(function (){
$(this).bind(event_down, function (){
content.swipe.next();
if ($.browser.msie){
var pos = target.swipe.getPos();
var k = 0;
pageview.children().each(function (){
var act=k==pos;
$(this).addClass((act?"":"in")+"active").removeClass((act?"in":"")+"active");
k++;
});
}
});
});
上面的代码来自我用于手势的hammer.js。当我删除此代码时,它仍然无法正常工作。所以基本上现在没有抛出任何错误,但是所有幻灯片都是垂直显示的,并且滑块(ofcourse)不起作用。
答案 0 :(得分:1)
您的错误不是浏览器或IE相关。您只在IE上看到此错误,因为您在if ($.browser.msie)
内使用了目标。您必须使用event.target,其中event是变量绑定事件函数。
显示:
<button id="button1">Click</button>
<button id="button2">Click</button>
</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript">
$('#button1').click(function(){
alert(target.nodeName)
}
);
$('#button2').click(function(event){
alert(event.target.nodeName);
}
);
第一个按钮会导致相同的错误。在您的情况下,请使用$(this).bind(event_down, function (event)
和event.target.swipe.getPos();