0

2 つの別々のイベントから関数の同じ機能を実現しようとしています。だから私が作成した関数は次のとおりです。

function adding_stuff() {
    var names = [];
    var dates = [];
    for(var i = 0; i < this.files.length; i++) {
        //adding stuff to names and dates
    }
    $(".primary .panel-content").append("<ul class='list-unstyled'></ul>");
    for(var i in names) {
        var li = "<li>";
        $(".primary .panel-content ul").append(li.concat(names[i]))
    }
}

との 2 つのボタンがありprimaryますsecondary。両方の関数に同じ機能が必要ですが、出力は異なり<div>ます。現在、選択されているの<div>は ですが".primary"、これはクリックされたボタンに依存するようにしたいです。

関数は以下を使用してトリガーされます。

$("#primary").onchange = adding_stuff;
$("#secondary").onchange = adding_stuff;

注: primaryおよびsecondaryはタイプ の入力ですfile

4

4 に答える 4

2

コールバックを登録するときに追加データを追加できます。これは、イベント ハンドラー内で使用可能になります。

$('#primary').on('change', { target: '.primary' }, adding_stuff);
$('#secondary').on('change', { target: '.secondary' }, adding_stuff);

そして、ハンドラー内で:

function adding_stuff(ev) {
    var cls = ev.data.target;  // extract the passed data
    ...
    // file handling code omitted

    $(".panel-content", cls).append(...)
}
于 2013-04-24T11:08:30.260 に答える