2011-06-21 8 views
2

私はこのプラグインを使用しています - http://plugins.jquery.com/project/styledSelect私のページの選択ボックスのスタイルを設定しています。ここでのデモページ - 、jQuery.styledSelectプラグイン - dom内の別の要素からselectを開きます

$('#show-lists').styledSelect(); //apply the plugin on page load 

    $("#another-button").toggle(
     function() { 
     $('#show-lists').clickSelect() //open the dropdown 
     }, 
     function() { 
     $('#show-lists').closedSelect() //close it 
     }, 
    ); 

上記のコードは動作しません - http://liepins.org/files/jQuery.styledSelect-1.0/examples.html

私は、ページ上の他の要素から選択ボックスを開閉する方法を把握するような何かをしようとしてきました説明するだけの場所です。どのように私はこれらのメソッドに外部からアクセスできますか?あるいは、誰かが代替案を提案することができますか?

ありがとうございます。

答えて

0

プラグインを変更して、コントロールにバインドされたイベントとして公開することができます。

closedSelect(); 
    s.change(closedSelect); 
    currentZIndex -= 3; 

    // New lines 
    s.bind('openSelect', clickSelect); 
    s.bind('closeSelect', closedSelect); 
}); 

、その後、あなたのコードからイベントをトリガー:

$("#another-button").toggle(
    function() { 
    $('#show-lists').trigger('openSelect'); 
    }, 
    function() { 
    $('#show-lists').trigger('closeSelect'); 
    }, 
); 

あなたが見ることができるようにclosedselectが既に.change()イベントにバインドされているので、あなただけ近いため代わりに$('#show-lists').change();を呼び出すことができますが、ケース - しかし、私は明確にするために私は別のイベントに固執すると思います。

+0

これは完璧なおかげで、よく説明されています。とても有難い。 – Finnnn

+0

ここには何がありますか?これは '$( 'select')'ですか? – Manwal

+0

@Manwalはい、効果的です。それは[プラグインのコード](https://code.google.com/p/lnet/source/browse/trunk/jQuery.styledSelect/jQuery.styledSelect.js)です。現在は100行目に加えて、公開するように提案した2行目選択ボックス上の新しいイベントにそれらをバインドすることによって、そのプライベートな機能を実現します。あなたは、プラグインに渡された選択項目の各ループ内で 'var s = jQuery(this);;を定義するのは正しいです。 – Rup

関連する問題