0

以下のコードがあります。jQueryの.on関数を使用して機能させようとしていました。しかし、うまくいかないようです。私が基本的にやろうとしているのは、HTML 選択でオプションを選択するたびに、目的の要素で onclick を押すことです。初回のみ動作します

$('#orderby').on('change',function() {
    var orderbyOption = $('#orderby option:selected').val()

    if (orderbyOption == "proyecto"){
        $('#proyectoOrder').click();
    }

    if (orderbyOption == "ano"){
        $('#anoOrder').click();
    }

    if (orderbyOption == "tipo"){
        $('#tipoOrder').click();
    }
});

要素の はorderbyどこですかidselect

<select id="orderby" style="float: left; left: 360px; padding-top: 2px; position: absolute; text-align: left; top: 6px;">
    <option value="projecto">projecto</option>
    <option value="ano">ano</option>
    <option value="tipo">tipo</option>
</select>
4

2 に答える 2

2

コードは次のように簡略化できます。

$('#orderby').on('change', function() {
    $('#' + $(this).val() + 'Order').click();
});

それでも同じ問題が発生する場合は、1 つ以上のクリック アクションが選択要素またはその変更ハンドラーに影響を与えたり、置き換えたりする可能性があります。

于 2012-11-24T07:00:50.410 に答える
1

コードを単純化する方法は次のとおりです。

$('#orderby').on('change',function() {
    var orderbyOption = $(this).val()
    $('#'+orderbyOption+'Order').trigger('click');
    console.log('#'+orderbyOption+'Order'); // To check the id
});​

ここで実用的なソリューションを試すことができます: http://jsfiddle.net/uy4rx/

于 2012-11-24T06:55:15.510 に答える