2

这是我第一次使用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

4 回答 4

2

尝试:

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

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

});
于 2013-07-22T06:28:35.060 回答
0

change 方法不适用于 div 元素。

当元素的值改变时,change 事件被发送到元素。此事件仅限于输入元素、文本区域框和选择元素。

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

你可以尝试这样的事情:

$(".sem-box").find('input[type=radio]').change(function () {
    //code
});
于 2013-07-22T06:27:08.343 回答
0

使用事件委托

$('#seminar').on('change', '.sem-box', function () {
  var location = $(this).find('h3').html();
  alert(location);
});
于 2013-07-22T06:28:37.140 回答
0

似乎您正在尝试将“更改”事件绑定到 div 元素。我不认为更改元素会向上传播到 DOM 树。看到这个问题。因此,您的处理程序将设置在 div 元素上,但永远不会触发“更改”事件。

像这样的东西:

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

可能会完成这项工作。

也看到这个小提琴

于 2013-07-22T06:29:17.780 回答