Проблемы с браузером BlackBerry Torch 9800 webkit с событиями Javascript

Кажется, у меня огромная проблема с браузером BlackBerry Torch 9800. Этот браузер поддерживает HTML5 и JavaScript. Внешний вид веб-страницы, разработанной для мобильных устройств в HTML 5, выглядит одинаково для iPhone, Android и Torch. Но с точки зрения функциональности Torch действительно отстой, когда дело доходит до событий javascript, которые по какой-то причине перекрещиваются. Все остальные мобильные браузеры и настольные браузеры, поддерживающие HTML5, работают без проблем. Сначала я подумал, что это javascript-фреймворк jQuery, который я использовал. Итак, я переключился на гораздо более легкую версию с XUI, и я все еще получаю ту же перекрестную обработку событий. Вот что я имею в виду (используя jQuery 1.4.x или jQuery 1.5 или XUI 2.0): (далее используются как jQuery 1.5 (для документов готов), так и объекты XUI и модели событий)

<!DOCTYPE html>
<html>
<head runat="server">
  <meta charset="utf-8">
  <meta name=”HandheldFriendly” content=”true” />
  <meta name="apple-mobile-web-app-capable" content="yes"/>
  <meta name="viewport" content="user-scalable=no, width=device-width" />
...

  <script type="text/javascript" src="../Scripts/jquery-1.5.min.js"></script>
  <script type="text/javascript" src="../Scripts/xui-bb-2.0.0.min.js"></script>
</head>
<body>
<form ... >
  <div style="width: 100%;">
    <label>Dropdown List 1</label><br />
    <select id="m_ddl1" style="width: 100%;">
      <option value="1">Option 1</option>
      <option value="2">Option 2</option>
      <option value="3">Option 3</option>
      <option value="4">Option 4</option>
    </select>
  </div>
  <br />
  <div style="width: 100%;">
    <label>Dropdown List 2</label><br />
    <select id="m_ddl2" style="width: 100%;">
      <option value="a">Option A</option>
      <option value="b">Option B</option>
      <option value="c">Option C</option>
      <option value="d">Option D</option>
    </select>
  </div>
  <br />
  <asp:LinkButton runat="server" id="m_goButton" CssClass="button disabled" Enabled="false" ClientIDMode="Static">Go</asp:LinkButton>

<script type="text/javascript">
$(document).ready(function()
{   var pageRun = new PageFunctionality();
    pageRun.Initialize();
});

function PageFunctionality()
{   this.Option1 = x$("#m_ddl1");
    this.Option2 = x$("#m_ddl2");
    this.Button = x$("#m_goButton");
    this.Link = x$("#m_link");
}

PageFunctionality.prototype.Initialize = function()
{   var me = this;
    me.Option2.attr("disabled", "disabled");        

    me.Option1.on("change", function()
    {  me.EnableButton(me.Button, false);
       me.Option2.attr("disabled", "");
       alert("DD1 Changed");
    });

    me.Option2.on("change", function()
    {  me.EnableButton(me.Button, true);
       alert("DD2 Tapped");
    });
}

PageFunctionality.prototype.EnableButton = function(objButton, isEnable)
{   var me = this;

    if(isEnable)
    {  x$(objButton)
        .on("click", function()
        {  me.Option2.attr("disabled", "disabled");
            me.EnableButton(me.Button, false);
            alert("Button Tapped");
        })
         .removeClass("disabled");
    }
    else
    {  x$(objButton)
        .un("click")
         .addClass("disabled");
    }
}
</script>
</form>
</body>
</html>

Что происходит с этим кодом в BlackBerry Torch, так это то, что после выбора выпадающего списка 1 и внесения изменений щелчок в любом месте экрана или кнопки приведет к повторному запуску события onchange события выпадающего списка. Это относится ко всем остальным объектам, с которыми связаны события. Кроме того, на BlackBerry кажется, что, когда раскрывающийся список отключен, его можно щелкнуть, чтобы отобразить список.

В конце концов я решил использовать jQuery Mobile версии 1.0 alpha 2. Он решает многие проблемы с javascript и выпадающими списками для BlackBerry, но затем он представил массу других проблем со встроенными скриптами и перенаправлениями страниц. Итак, я хотел бы попытаться решить эту проблему с помощью перекрестного запуска событий с помощью jQuery или XUI для использования на BlackBerry. Очень ценю чью-либо помощь в этом.

2 ответа

BB os6 лучше работает со стандартной версией XUI для вещей, на которых я тестировал. Я использовал версию BB ранее на OS6 и нашел ее немного ненадежной.

Пример, который вы показываете здесь, ссылается на среду XUI, а не на jquery-mobile. Было бы более полезно, если бы вы упомянули, какой тип ошибки вы получаете в вашем браузере Firebug/ браузера и какую ОС BB вы используете. Вы упомянули webkit, так что я предполагаю, что это BB6, если это не так, то вы используете BB5, браузер которого гораздо менее адекватен, когда дело доходит до полноценной JS-функциональности jquery-mobile, в основном Ajax Navigation.

Другие вопросы по тегам