【问题标题】:JQuery returning Uncaught Error: cordova already definedJQuery 返回未捕获的错误:cordova 已定义
【发布时间】: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


【解决方案1】:

解决我的问题的方法是添加:

$("#form_id").submit(function () {
    return false;
});

在 OnDeviceReady() 方法中。这是因为我有 2 个相同形式的按钮。我仍然无法解释错误“Cordova 已定义”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-21
    • 2021-06-16
    • 2014-01-20
    • 2015-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多