Jquery 移动动态创建的范围更改事件未触发

Jquery Mobile dynamic created range change event not firing

我正在使用此代码创建一个 Jquery 移动范围动态:

$('<input data-type="' + elementType + '" id="' + name +' " min=' + value1 +' max=' + value2 + ' value="127" >').appendTo("fieldset");

现在我想用这段代码添加一个更改事件:

$(".brightness").change(function() {
        alert("changed");
});

我不知道为什么它不起作用,我尝试在定义事件后刷新范围,我尝试将事件绑定到范围,但没有任何效果。包含第一个代码片段的函数首先被调用,包含第二个代码片段的函数被第二个调用。

你们有人知道我做错了什么,或者我忽略了什么吗?

对动态创建的元素使用 on 方法

$(".brightness").on('change',function() {
        alert("changed");
});

你需要做两件事 1. 将 css class brightness 添加到您的范围输入

$('<input class="brightness" data-type="' + elementType + '" id="' + name +' " min=' + value1 +' max=' + value2 + ' value="127" >').appendTo("fieldset");
  1. 使用 on
  2. 添加事件处理程序

$(document).on("change",".brightness",function() { alert("changed"); });

EDIT - 对于 id 选择器使用 # 而不是像下面这样的 .(dot) $(document).on("change","#brightness",function() { alert("changed"); });

勾选jQuery Selector

我认为您正在通过 Class 使用点 (.) 提供 id 亮度和调用 Onchange 事件。

如果id的名字是brightness那么 你应该使用#

 $("#brightness").on('change',function() {
        alert("changed");
});

但是如果您只想通过 class 调用 onchange 事件,那么您需要在输入中添加 class 并使用点 (.)

$('<input class="brightness" data-type="' + elementType + '" id="' + name +' " min=' + value1 +' max=' + value2 + ' value="127" >').appendTo("fieldset");

$(".brightness").on('change',function() {
    alert("changed");
});