1

我有一个功能,我们在单击表格中的添加行按钮时添加动态行。我的问题是我必须在新行中更改我的选择列表时提醒一条消息,但是当我们使用 Jquery 实时点击时它不起作用。但它适用于使用 Jquery 绑定单击时未动态添加的所有其他选择框。有人可以帮我解决这个问题吗?

在我的项目中,我们使用 Jqtransform 来格式化 html 控件。

到目前为止我所做的是

    $('div.jqTransformSelectWrapper ul li a').live('click',function() {
        alert('message');}
    });
4

2 回答 2

5

我通过执行以下操作触发选择列表的更改事件来修改 Jqtransform.js 文件,从而解决了这个问题。实际上它是一个关于 Jqtransform.js 的错误

如果您看到我的这篇文章,您可能知道 jqtransform 是什么,并且您可能正在为下拉列表的更改事件而苦苦挣扎。

它不起作用的原因是因为 jqtransform 使用无序列表创建了一个下拉列表,然后它隐藏了您的下拉列表。

修复实际上非常简单。

打开 jquery.jqtransform.js 文件并找到以下行:

/* Fire the onchange event */
if ($select[0].selectedIndex != $(this).attr('index') && $select[0].onchange) {
     $select[0].selectedIndex = $(this).attr('index');
     $select[0].onchange();
}

现在只需在该行下方添加以下内容:

/* Fire the change event */
if ($select[0].selectedIndex != $(this).attr('index')) {
     $select[0].selectedIndex = $(this).attr('index');
     $($select[0]).trigger('change');
}
于 2011-09-22T07:05:50.513 回答
0

改用 jQuery delegate()。这比live有很多原因要好。也请使用console.log()而不是alert()调试!

$('div.jqTransformSelectWrapper ul li').delegate('a', 'click',function() {
        console.log('message');}
    });
于 2011-09-22T05:49:07.850 回答