django管理者追加ページでは、使用時にhtmlのようなTabularInline
アンカーがありますAdd another Poll
<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()
なぜうまくいかないのか誰か教えてもらえますか?または、同じことを行うための他の提案はありますか?