плагин jQuery доступ к информации, как? - PullRequest
0 голосов
/ 24 января 2011

Например, у меня есть плагин для списка элементов:

<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>

Надеюсь, вы понимаете мой вопрос ....

Ответы [ 3 ]

1 голос
/ 24 января 2011

Использовать метод цепочки. Так что ваш loadElementsPlugin должен возвращать объект jQuery

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

0 голосов
/ 24 января 2011

Похоже, вы спрашиваете, как использовать ваш плагин и сделать так, чтобы он ссылался на список, из которого он вызывается.Если это так, попробуйте что-то вроде этого:

$(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
    });
});

Это обрабатывает несколько списков, если они у вас есть, и избавляется от встроенных обработчиков событий, которых следует избегать.

0 голосов
/ 24 января 2011

Это плохая практика;вам следует использовать обработчики кликов jQuery.
Не смешивать скрипт с презентацией.


Чтобы ответить на вопрос, вы можете сделать это так же, как вызываете плагин в другом месте.поскольку this будет ссылаться на элемент, на который вы нажали, вы также можете написать $(this).closest('ul').getElementsCount()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...