3

我试图在 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>
4

2 回答 2

2

我对iui不熟悉,但是当你写的时候:

但是在这两种情况下都会触发此事件

我认为你错过了一些东西(这可能很好地解释了你的问题)。如果您查看滑块的代码,您会发现鼠标拖动确实触发了一组不同的事件。看“ _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 登陆;但是,我怀疑情况并非如此。

希望有帮助。

于 2009-08-28T19:07:03.443 回答
1

Thanks for the help machineghost. Incase anyone else has this problem, its caused by the iui function 'addEventListener' picking up the clicks on the slider. It the tries to set the selected attribute on the tag '#', which breaks the page. You can check if the tag is a real one before allowing this to continue, not a perfect fix but it works.

于 2009-08-31T14:42:08.717 回答