2011-01-24 35 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

你應該接受解答您的疑問。 – 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對象

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