0

jqueryでいくつかの基準が一致しない場合、JavaScript関数をキャンセル/停止したい

<div id="prewrapper">
    <ul class="tabs seller">
        <li class="active">
            <a onclick="adc.FormHandler.goto('user_edit', 0); return false;" href="#"><i data="1" class="icon-tab-num"></i> General Info</a>
        </li>
        <li class="">
            <a onclick="adc.FormHandler.goto('user_edit', 1); return false;" href="#"><i data="2" class="icon-tab-num"></i> Account Details</a>
        </li>
        <li class="">
            <a onclick="adc.FormHandler.goto('user_edit', 2); return false;" href="#"><i data="3" class="icon-tab-num"></i> Roles</a>
        </li>
    </ul>
</div>

でいくつかの検証をチェックし$('#prewrapper').click(function (e){、有効でない場合は、href onclick 関数に移動したくありません。つまり、adc.FormHandler.goto

4

1 に答える 1

0

多くのブラウザーのイベント モデルを考慮すると、その時点では手遅れです。通常、イベントは「最も深い」要素から「最も浅い」要素までバブルします。

jQuery を使用してイベントを委任することで、これを修正できます。

$('#prewrapper').on('click', 'a', function()
{
    if(someCondition)
       adc.FormHandler.goto('user_edit', $(this).data('edit-num');
});

YoursomeConditionは、実際の要素のクリック イベントであったものを呼び出すかどうかを示します。次に、属性を使用してリンクをマークし、ユーザー パラメータを保存します。

<a data-edit-num="1" href="#">
于 2012-05-18T18:39:05.530 に答える