0

submitTask(takk, layout) 関数 (フォームに値を追加して送信する独自​​の関数) を送信するリンクがあります。この機能をjQueryと組み合わせたい。私はこのようなものを作りました。

$(function() {
    $('#edit').click(function(e) { 
        e.preventDefault();
        submitTask('edit','edit');
    });
});

為に

<a href="#" id="edit">Link</a>

それは機能しますが、必要なすべての要素に対してその jQuery 関数をユニバーサルに変更したい (スクリプト内の各要素に対して $().click() を定義したくない) 関数は次のように onclick と呼ばれます:

<a href="#" onclick="jqueryFunction('task','layout')>Link</a>

私はまだ .preventdefautlFunction() を保持したいからです。パラメータを使用してjQuery関数を実行する方法がわかりません。私はこのようなものが必要ですが、適切に動作しています:

function jqueryFunction(task,layout){
$('a').preventDefault();
submitTask(task,layout);
}
4

1 に答える 1

1

実際、目障りなイベント ハンドラーを使用することは一般的に悪い習慣です。最初の例を使用してから、クラスを使用してクリックを処理する方がよいでしょう。

たとえば、マークアップを次のように変更できます。

<a href="#" class="customClick" id="edit">Click Me</a>

jQuery コードは次のようになります。

$('a.customClick').on('click', function(e) {  
    e.preventDefault();
    var action = $(this).prop('id');
    submitTask(action, action);
});

アクションとは異なるレイアウトを定義する必要がある場合は、次のswitch()ステートメントを使用します。

$('a.customClick').on('click', function(e) {  
    e.preventDefault();
    var action = $(this).prop('id'),
        layout;

    switch(action)
    {
        case 'edit':
            layout = 'edit';
            break;
    }
    submitTask(action, layout);
});
于 2013-07-24T11:19:28.777 に答える