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

时间:2016-08-24 08:22:24

标签: javascript jquery html5 jquery-mobile

我正在使用以下代码创建一个Jquery Mobile范围动态:

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

现在我想使用以下代码添加更改事件:

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

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

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

您需要做两件事 1.将css类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"); });

    编辑 - 对于ID选择器使用#而不是.(点),如下所示 $(document).on("change","#brightness",function() { alert("changed"); });

    检查 jQuery Selector

答案 2 :(得分:0)

我认为你使用点(。)来提供id亮度和按类调用Onchange事件。

如果id的名称是亮度则 你应该使用#

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

但如果您只想按类调用onchange事件,那么您需要在输入中添加类并使用点(。)

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

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