例如,我有一个元素列表的插件:
<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 :(得分:1)
使用方法链接。所以你的loadElementsPlugin应该返回一个jQuery对象
$( '#list_elements') .loadElementsPlugin() .getElementsCount()
答案 1 :(得分:0)
这是不好的做法;你应该使用jQuery点击处理程序 不要将脚本与演示文稿混合。
要回答这个问题,你可以像在其他地方调用插件一样
此外,由于this
将引用您点击的元素,因此您还可以撰写$(this).closest('ul').getElementsCount()
答案 2 :(得分: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
});
});
这可以处理多个列表(如果有的话),并且可以避免使用内联事件处理程序。