jleb事件不会在Handlebars模板上触发

时间:2013-07-22 06:21:11

标签: jquery handlebars.js

这是我第一次使用stackoverflow。希望一切都有意义。

我正在使用tableTop.js和Handlebars从谷歌电子表格中提取数据。

加载数据时,每个人都有一个关联的单选按钮,需要在选中时触发事件(此时只是一个警告框)。

我的问题是当我点击它时没有任何反应。但是,如果我使用完全相同的代码进行硬编码(不是从电子表格中提取),则警报会正常触发。

以下是演示链接 http://jsfiddle.net/danieltramacchi/zgSvY/

触发事件的代码

$(document).ready(function () {

    $(".sem-box").on("change", function () {

        var location = $(this).find("h3").html();
        alert(location);

    });
});

最初出现的单选按钮会触发警报,但如果您点击该图像,则会将其删除并从电子表格中提取数据。

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:2)

尝试:

$("#seminar").on("change", ".sem-box",function () {

    var location = $(this).find("h3").html();
    alert(location);

});

答案 1 :(得分:0)

更改方法不适用于div元素。

  

更改事件在其值更改时发送到元素。此活动仅限于输入元素, textarea 框和选择元素。

http://api.jquery.com/change/

你可以尝试这样的事情:

$(".sem-box").find('input[type=radio]').change(function () {
    //code
});

答案 2 :(得分:0)

使用event delegation

$('#seminar').on('change', '.sem-box', function () {
  var location = $(this).find('h3').html();
  alert(location);
});

答案 3 :(得分:0)

看起来你正在尝试将“change”事件绑定到div元素。我认为更改元素不会在DOM树中传播。见this question。所以你的处理程序将在div元素上设置,但“change”事件永远不会被触发。

这样的事情:

$("input[name=radioButtonGroup]").change(function () {
 ...
}

可能会完成这项工作。

另见fiddle