2009-08-28 7 views
3

iphoneウェブアプリケーションでスライダーを取得しようとしていますが、私はiuiを使用してUIを処理しています。スライダがドラッグして別のページを開こうとすると、スライダがiui.jsと何らかの矛盾を引き起こしているように見えます。ただし、バーの一部をクリックするだけでうまくいきます。私はそれがそれを引き起こすスライドイベントだと思ったが、このイベントは両方のケースで引き起こされるので、私はちょっと立ち往生している。どんな助けでも大歓迎です。JQueryスライダーとiui(iPhone)の間で競合が発生する

簡単なテストケース(スライダーを取得するために、クリックスルー):

<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> 

答えて

2

私はIUIに慣れていないんだけど、あなたは書いたとき:

が、このイベントは、どちらの場合にトリガされます

私はあなたが何かを逃したと思う(あなたの問題をよく説明するかもしれない)。スライダのコードを見ると、マウスドラッグにはトリガされる一連のイベントがあることがわかります。 「_mouseCapture」と「_mouseDrag」を見てください。 _mouseDragは "_slide"をトリガしますが、最初に "_normValueFromMouse"がトリガされます。 "_mouseCapture"については、スライダのコードに直接繋がれていないので(明らかに、いくつかの一般的なjQueryのUIコードを介して行われている)、それが関係しているかどうかは確かではありませんが、名前に基づいて、 。いずれにしても

、どちらか_mouseDrag,_normValueFromMouse、または可能性_mouseCapture(あるいは、彼らが呼んでいくつかの機能)が不用意にいくつかのIUI関数を呼び出すしているようです。私の推測では、iuiはスライダー/ jQuery UI関数と同じ名前の関数をフックし、jQuery UIがそれをフックアップした後、スライドがiui関数を呼び出すことになります。

「goSomewhere」関数がjQuery UIで定義され、次に_mouseDragによって呼び出されたとします。通常は正常に動作しますが、誰か(iui)が_mouseDragによって代わりに呼び出される関数である "goSomewhere"関数を定義しているとします。

また、スライダのコードが、通常は別のページに移動することはありませんが、iPhoneの土地では何かを呼び出している可能性があります。しかし、私はこれが事実ではないと思う。

希望に役立ちます。

1

助けてくれてありがとう。他の誰かがこの問題を抱えているのは、iui関数 'addEventListener'がスライダのクリックを拾っているためです。それはページを壊すタグ '#'に選択された属性を設定しようとします。これを許可する前にタグが本当のものかどうかを確認できますが、完璧な修正ではなく動作します。

関連する問題