【发布时间】:2016-05-30 08:43:03
【问题描述】:
我正在开发一个 cordova 应用程序 - 我正在使用 Cordova 6.2.0。
单击按钮时,我收到未捕获的错误:Cordova 已定义。当单击它时,通过使用 Javascript 删除 display:none 样式,可以看到一些以前隐藏的按公共类名分组的组件。
错误源于 JQuery。我尝试了不同版本的 jQuery,包括最新版本。奇怪的是,JQuery 代码没有在被触发的脚本中使用。该页面未重新加载。
在 html 中我调用这些脚本:
<script src="cordova.js"></script>
<script src="scripts/platformOverrides.js"></script>
<script src="scripts/jquery-1.11.1.min.js"></script>
<script src="js/jquery.mobile-1.4.5.js"></script>
在 html 中我也有这 2 个按钮:
<button onclick="ForgotPassword()" style="background-color: #f79629; border-style:none; width: 200px; height: 40px; color: white; border-radius:5px;">Send Reset Code</button>
<button class="hideTD" id="CPbtn" onclick="ChangePassword()" style="display:none; background-color: #f79629; border-style:none; width: 200px; height: 40px; color: white; border-radius:5px;">Change Password</button>
如您所见,第二个按钮已隐藏。单击第一个按钮时,它将与其他组件一起再次可见。
这是 JS 函数的开始 - ForgotPassword():
var username = document.getElementById("Username").value;
if (username != '') {
$.ajax({
type: 'GET',
url: ResetPasswordUrl,
data: { username: username },
success: function (data) {
if (data == '') {
var nodes = document.getElementsByClassName("hideTD");
for (var i = nodes.length, n = 0; n < i; n++) {
nodes[n].style.display = '';
}
alert("A code has been sent to your email address");
单击发送重置代码后,将执行上述代码。 for 循环访问类为 hideTD 的所有组件并删除 display:none 样式。据我所知,没有应该冲突的 JQuery;此外,cordova is already defined 错误对我来说没有意义。
【问题讨论】:
-
很抱歉投了反对票,但没有提供代码。
-
好吧,让我们添加代码:)
-
已添加代码。谢谢
-
对我来说看起来很奇怪:我会使用 Jquery 样式来访问 DOM 对象,例如:
nodes = $('body').find('[class*=hideTD]'),然后继续$(nodes).each(function(){$(this).css('display','none')}(或者如果您查看 JQUERY 函数语法,则可以使用类似的东西) )。 -
更改隐藏组件可见性的功能与 Javascript 配合得很好——我的代码是 Javascript 而不是 jquery 对吗?虽然使用 JQuery 可能会更简洁,但您认为它会解决问题吗?在我看来,由于我没有使用 Jquery,所以这个问题的错误和重点不太可能发生
标签: jquery cordova visual-studio-cordova