【发布时间】:2013-02-06 11:01:00
【问题描述】:
在 django 管理添加页面中,当使用 TabularInline 时,它有一个锚点 Add another Poll,它的 html 看起来像
<a href="javascript:void(0)">Add another Poll</a>
现在我想添加一个新行,就像在触发文件输入更改事件时使用鼠标单击锚点一样:
$('input:file').change(function(e){
//... do something ...
var rows = "#poll_set-group .tabular.inline-related tbody tr";
var addbtn = $(rows).parent().find("tr:last a")
addbtn.click(); // try to add a new row but doesn't work
});
元素选择正确,但 click() 不起作用。我也试过addbtn.trigger('click'),虽然它几乎做同样的事情,但仍然不起作用。
当我追踪到 Django 的 inline.js 可以看到绑定的函数
inline.js
(function($) {
$.fn.formset = function(opts) {
///...
if ($(this).length && showAddButton) {
var addButton;
if ($(this).attr("tagName") == "TR") {
//...
addButton = $(this).parent().find("tr:last a");
} else {
//...
addButton = $(this).filter(":last").next().find("a");
}
addButton.click(function() {
//...
});
}
}
})(django.jQuery);
谁能告诉我为什么.click() 不起作用?
或者任何其他建议做同样的事情?
【问题讨论】:
-
我没有找到
addbtn.click()的代码(您正在调用它但没有实现)您是否错过了要发布的内容? -
我认为 click() 实现在文档准备好后调用
$(rows).formset(...)时已经绑定到addButton.click(...。我所要做的就是触发点击事件。我的想象错了吗?
标签: jquery django django-forms django-admin