【问题标题】:function not executing on "pageinit" when clicked through anchor tag单击锚标记时,函数未在“pageinit”上执行
【发布时间】:2017-04-04 19:19:16
【问题描述】:

我试图在使用 jquery mobile 的应用程序上执行 jquery 函数

侧边菜单单独包含

<div class="menu">
<ul>
 <li><a href="test.html">Test 1</a></li>
  <li><a href="test2.html">Test 2</a></li>

</ul>

</div>

测试 1 HTML

<div id="test1">
<p>This is a test page to check</div>

<script>
 $( document ).delegate("#test1", "pageinit", function() {
      alert('created by jQuery Mobile!');
    });
</script>
</div>

在 HTML 页面上,我有以下 java 脚本代码

$( document ).delegate("#test1", "pageinit", function() {
  alert('created by jQuery Mobile!');
});

当我点击链接时,alert() 框没有被执行。但是当我刷新页面时,它会显示alert

谁能告诉我为什么点击链接时页面上没有执行警告框?

注意:

如果我在链接上设置data-ajax="false" 它可以工作。我想在不将其设置为 false 的情况下执行它

【问题讨论】:

  • 请添加 HTML 标记;两个主播并不能说明什么。使用.onpagecreate
  • @Omar 我使用了.onpagecreate,但是当我点击时仍然没有任何反应。仅在我刷新时有效
  • 这不是一个正确的页面结构,请通过 jQuery-mobile 阅读更多内容。 delegate 已弃用。不要使用警报进行调试。您的解决方案很简单,只需阅读一下即可了解 jQM 的工作原理。 $(document).on("pagecreate", "#test1", function(){ console.log("test1 pagecreate"); });.
  • @Omar 你可以在这里看到实时页面vidznet.com/tabupdated/test2.html(你需要点击菜单中的个人资料链接)我确实尝试了$(document).on("pagecreate",,当我点击链接时仍然没有任何反应。太奇怪了

标签: javascript jquery jquery-mobile


【解决方案1】:

您没有设置导致问题的锚标记的 ID,并且绑定函数创建了一个由该对象调用的新函数,因此当您刷新页面时,它指向该对象并显示警报休息,请参阅 https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_objects/Function/bind

【讨论】:

  • 锚标签的id是什么意思?
  • 我的意思是把 id 添加到 标签
猜你喜欢
  • 1970-01-01
  • 2013-10-16
  • 2017-03-30
  • 1970-01-01
  • 2017-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多