【问题标题】:Fire checkbox event with jQuery Mobile使用 jQuery Mobile 触发复选框事件
【发布时间】:2013-03-08 02:38:06
【问题描述】:

我正在使用 jQuery 1.8.3 和 jQuery Mobile 1.2.0。

我正在尝试实现vertically grouped checkboxes

我需要检测复选框上的更改。一个例子是可用的here

但是,它在我的页面上不起作用(我没有给出,因为它包含太多依赖项但代码相同)。

基本上,当我单击一个复选框时,控制台中应该会显示以下消息:

INPUT
module1
-----

而在我的页面中,我有:

FIELDSET
moduleListTitle
-----
DIV
moduleContainer
-----
DIV
(an empty string)
-----

我花了几个小时试图找出事件没有正确触发的原因。

有人遇到过这个问题吗?

【问题讨论】:

  • 您可能需要在动态插入复选框后.trigger('refresh')。在您提供的 JSfiddle 上工作正常。所以在('create')之后试试$('#moduleListTitle').parent().trigger('refresh');

标签: jquery-mobile checkbox jquery


【解决方案1】:

在现场测试代码后 - 不是在 JSfiddle 上 - 我已经达到了以下解决方案。

由于项目是动态添加的,您应该将事件绑定到$(document),将处理程序绑定到'input:checkbox.module'

这是代码,希望它能解决你的问题。

$(document).on('change','input:checkbox.module', function(){
 console.log(this.tagName);
 console.log(this.id);
 console.log("-----");
});

这里不需要trigger.('refresh')

【讨论】:

  • 我很高兴我得到了帮助 :) 我真的不知道,但我认为 JSF 将它们视为静态元素而不是动态元素。我应该更深入地研究这个主题并找出原因。
  • @user3765109 不客气。将侦听器附加到动态元素的更好方法是从 parent 静态元素(非动态添加)委托change 事件,例如$("#static_parent").on("change", ".dynamic_element", function () { /* code */ });jsfiddle.net/z4UQC/23如果您有疑问,请发布一个新问题:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2010-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-07
  • 2017-08-27
相关资源
最近更新 更多