我正在尝试在iPhone Web应用程序上获取滑块,我正在使用iui处理ui.滑块似乎与iui.js产生某种冲突,当您拖动滑块尝试打开另一个页面时.但是,当您单击栏的某些部分时,它可以正常工作.我以为是导致它的幻灯片事件,但是在两种情况下都触发了该事件,所以我有点卡住了.任何帮助将不胜感激.
简单的测试用例(单击以获取滑块):
<head>
<Meta name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
<script type="application/x-javascript" src="http://www.joehewitt.com/iui/iui/iui.js"></script>
<link href="http://www.joehewitt.com/iui/iui/iui.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.slider.js"></script>
<link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
<script language="javascript">
$(document).ready(function(){
$("#slider").slider()
});
</script>
</head>
<body>
<div class="toolbar">
<h1 id="pageTitle"></h1>
<a id="backButton" class="button" href="#"></a>
</div>
<ul title="slider test" selected="true">
<li class="group">Page 1</li>
<li>
<a class="mainnav" href="#page2">page 2</a>
</li>
</ul>
<div id="page2" title="foo.inc">
<div id="slide_container">
<div id="slider"></div>
</div>
</div>
</body>
but this event is triggered in both cases
我认为您错过了一些内容(可能很好地解释了您的问题).如果看一下滑块的代码,您会发现鼠标拖动的确触发了一组不同的事件.看“ _mouseCapture”和“ _mouseDrag”. _mouseDrag确实会触发“ _slide”,但也会先触发“ _normValueFromMouse”.至于“ _mouseCapture”,它并没有直接连接到滑块代码中(显然,它是通过一些通用的jQuery UI代码完成的),所以我不能确定是否涉及到它,但是基于名称,它似乎很可能是.
无论如何,_mouseDrag,_normValueFromMouse或可能的_mouseCapture(或他们调用的某些函数)似乎在无意中调用了一些iui函数.我的猜测是,iui会挂接一个与滑块/ jQuery UI函数同名的函数,并在jQuery UI挂接它之后执行此操作,因此幻灯片会调用iui函数.
想象一下,如果在jQuery UI中定义了一个“ goSomewhere”函数,然后通过_mouseDrag对其进行了调用.通常,它可以正常工作,但是如果有人(iui)定义了自己的“ goSomewhere”函数,则该函数将由_mouseDrag代替.
另外,问题可能在于,滑块代码正在调用某些内容,这些内容通常不会导致导航到另一页,而在iPhone平台上会发生.但是,我怀疑情况并非如此.
希望能有所帮助.