我的BlackBerry Torch 9800 webkit浏览器似乎存在很大问题。那个浏览器支持HTML5和javascript。为HTML 5中的移动设备开发的网页外观与iPhone,Android和Torch相同。但功能明智,当涉及到由于某种原因交叉射击的javascript事件时,Torch真的很糟糕。支持HTML5的所有其他移动浏览器和桌面浏览器似乎都没有任何问题。起初,我认为这是我使用的jQuery javascript框架。因此,我使用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框架。它解决了BlackBerry的许多javascript和下拉问题,但随后它引入了一系列嵌入式脚本和页面重定向的其他问题。因此,我想尝试使用jQuery或XUI交叉触发事件来解决此问题,以便在BlackBerry上使用。非常感谢任何人的帮助。
答案 0 :(得分:0)
您在此处显示的示例是引用XUI框架而不是jquery-mobile。如果你提到你在firebug / browser consle中遇到的错误类型以及你正在运行的BB OS是什么会更有帮助。你提到了webkit,所以我认为它是BB6,如果不是这样,那么你使用的是BB5,它的浏览器远远不足以处理jquery-mobile的全功能JS功能,主要是Ajax导航。
答案 1 :(得分:0)
对于我测试过的东西,BB os6在标准版XUI上的表现更好。我之前在OS6上使用过BB版本,发现它有点不可靠。