【问题标题】:jQuery on button click not workingjQuery点击按钮不起作用
【发布时间】:2026-01-28 10:15:02
【问题描述】:

我正在使用 jquery 移动点击功能,但是它不起作用。

这是我拥有的按钮示例,它包含在网格中:

<div class="ui-block-c"><a class="request" data-role="button" data-id="\"'+json[i].num+'\" data-type="3" data-icon="plus" data-iconpos="right">Test</a></div>

jQuery 函数:

$('.request').on('click', function() {
    alert("hi");
});

我该如何解决这个问题?

【问题讨论】:

  • 它正在工作here
  • 你确定在元素已经加载的时候绑定吗?这不是使用on 的正确方式。

标签: jquery button mobile click


【解决方案1】:

看起来您正在动态添加此元素,因此您需要使用委托事件侦听器:

$(document).on('click', '.request', function() {
    alert("hi");
});

另外,您的转义引号不匹配存在问题。我认为这些没有必要:

<div class="ui-block-c"><a class="request" data-role="button" data-id="'+json[i].num+'" data-type="3" data-icon="plus" data-iconpos="right">Test</a></div>

【讨论】:

  • 这行得通,但是按钮的格式丢失了,你知道如何处理吗?
  • 引号很好,因为html代码在引号''内,因为它后来被jquery附加
  • 什么格式丢失了?至于引号,您的问题有奇数个引号字符,这不是有效的 HTML,会导致您出现渲染问题。这可能是您的格式问题的根源。
  • 您的解决方案有效,但为什么添加事件 $('.request').on('click') 的其他方式不起作用?我有同样的问题,想了解原因。
  • 请求元素不存在,因此您无法将事件绑定到它。您可能想阅读事件委托以了解如何解决问题:learn.jquery.com/events/event-delegation
【解决方案2】:
$(.request).click(function(){
alert("hi")
});

【讨论】:

  • 嗨,杰克,欢迎来到 *!请用文字解释你的答案。为什么你认为这应该是答案。如果您给出的答案无效,您可以将其删除或编辑。但是用一些话来解释你的想法很好。干杯!
  • 在这种情况下,我认为更改为 .click() 不会产生影响或成为该问题的解决方案。
  • 哇!你们太苛刻了,我只是想帮忙:(
  • 杰克,别把它当成个人:)
  • 这是一个很棒的社区,说我不同意的方式就是投反对票。您可以随时编辑或删除您的答案。并继续! SO非常欢迎你