2011-01-24 20 views
0

私は要素のリストのためのプラグインを持っている:jQueryプラグインの情報へのアクセス方法?たとえば、

プラグインを使用して
<ul id="list_elements"> 
<li>1 element</li> 
<li>2 element</li> 
<li>3 element</li> 
<li>...</li> 
</ul> 

のjQueryコード:

$('#list_elements').loadElementsPlugin(); 

loadElementsPlugin機能(getElementsCountを())がある場合は、あなたがそれを呼び出すことができますこのような機能を実行する関数:

var myvar = $('#list_elements').loadElementsPlugin(); 
alert('My count is ' + myvar.getElementsCount()); 

しかし、同じHTMLコードからその関数を呼び出すにはどうしたらいいですか?例えば

<ul id="list_elements"> 
    <li>1 element</li> 
    <li>2 element</li> 
    <li>3 element</li> 
    <li>...</li> 
    <li><input type="button" onclick='alert(??????.getElementsCount());'/></li> 
    </ul> 

私はあなたが私の質問を理解してほしい....

+0

$( '#のlist_elements') .loadElementsPlugin() .getElementsCountを()オブジェクトを返す必要があります。 – SLaks

+0

あなたの質問への回答を受け入れない場合、人々はあなたを助けたいとは思わないでしょう、あなたのすべての質問に戻り、最高の答えを受け入れます。ありがとう。 –

答えて

0

これは悪い習慣です。 jQueryのクリックハンドラを使用する必要があります。
プレゼンテーションとスクリプトを混在させないでください。


質問に答えるには、プラグインを他の場所で呼び出すのと同じ方法で対応できます。 thisは、あなたがクリックした要素を参照しますので、
加えて、あなたはまた、あなたがあなたのプラグインを使用して、その中でそれがされていますから、リストを参照してください持っている方法を求めているように思える$(this).closest('ul').getElementsCount()

0

を書くことができますと呼ばれる。もしそうなら、このような何かを試してみてください。これはあなたがそれらを持っている場合、複数のリストを処理し、避けるべきインラインイベントハンドラ、を取り除く

$(document).ready(function(){ 
    $('ul').find('button') // for each button inside a list 
     .click(function(e){ // attach this click behavior 
     e.preventDefault(); 
     $(this).closest('ul') // this list 
      .loadElementsPlugin().getElementsCount(); // apply your plugin 
    }); 
}); 

1

メソッドチェーンを使用します。だからあなたのloadElementsPluginは、jQueryのあなたの質問の答えを受け入れる必要があり

関連する問題