0

Dropkick jQueryプラグイン<select>でスタイル設定された要素に「クリック」関数を割り当てるにはどうすればよいですか?Dropkickは関数を直接サポートしていないため、別の「クリック」関数を作成しようとしていますが、試した方法が機能しません click

$('#Select1').click(function () {
    var $select2 = $('#Select2');
    removeDefaultFromSelect($select2);
});

変更イベントハンドラーはプラグインの「カスタムコールバック」で割り当てる必要があることは知っていますが、Dropkickでスタイル設定された要素changeで関数を呼び出す方法があると思います(特にこのSO投稿は方法があることを示唆しているようです) Dropkickの「カスタムコールバック」内で呼び出す)clickchange

クリック機能を追加して、変更されたときだけでなく、「#Select1」がクリックされたときに以下の機能をトリガーできるようにしようとしています。関数の実用的な例をここに投稿しました:http://jsfiddle.net/chayacooper/zJ5c3/#username

既存の機能

// Helper function that removes "_default" from the end of the option values for the given select element.
function removeDefaultFromSelect($select) {
    $select.find('option[value$=_default]').prop('value', function(i, value){ return value.replace(/_default$/g, '');
    });
}

$('#Select1').dropkick({
    change: function(value) {     
        var $select2 = $('#Select2');
        removeDefaultFromSelect($select2);
        $select2.val(value);      
    }
});
4

1 に答える 1

0

Dropkickでイベントを使用する方法は見つかりませんでしたが、click2セットの要素を作成することで、やや複雑な一時的な回避策を見つけました<select>。1セットは標準要素を使用して非表示にしdisplay:none、もう1セットはDropkickとユーザーに表示されます。このメソッドを使用しているためchange()、ユーザーがドロップダウンボックスをクリックして、意識的に「デフォルト」値のままにすることを決定した場合でも、値は変更されません。

ここで使用した方法でフィドルを投稿しました:http://jsfiddle.net/john_s/yhAX5/4/

function removeDefaultFromSelect($select) {
    $select.find('option[value$=_default]').prop('value', function(i, value){ return value.replace(/_default$/g, '');
    });
}

$('#Select1').dropkick({
    change: function(value) {
        var $select2 = $('#Select2');
        removeDefaultFromSelect($select2);
        $select2.val(value);
    }
});
于 2013-04-14T19:43:44.530 に答える