2

約3点のリストがあります。これらのリスト項目の1つがクリックされるたびにトリガーされるjquery関数を作成したいと思います。関数は、htmlリスト項目の値または属性を使用して何かを実行できる必要があります。次のコードでは、ボタン2をクリックすると、値2が表示されたアラートボックスが表示されます。

<ul>
 <li class="myclick" id="1">Test Me</li>
 <li class="myclick" id="2">Test Me 2</li>
 <li class="myclick" id="3">Test Me 3</li>

 $.fn.myFunction = (function() {
          alert(this.id);
          });         
 $(function () {
       $(".myclick").click(function(){
                $().myfunction("Test");
      });

私はそれがかなり基本的な質問であることを知っていますが、私はJqueryで非常に新しく、自分自身を教えようとしています。

TIA

4

3 に答える 3

1

jsBinデモ

// PLUGIN method
$.fn.myFunction = (function() {
   this.click(function(){
          alert(this.id);
   });
});   

$(function(){  // DOM READY
  
    $(".myclick").myFunction(); // BIND PLUGIN TO .myclick elements

});

PS、ある日、どこかでの使用を見て怖くなった場合は、...使用するprototype代わりに今すぐ試してください:Dfnprototype

名前付き関数も使用できるより:

function alertID() {
   alert(this.id);
}   

$(function(){
  
    $(".myclick").click( alertID );

});
于 2013-01-14T03:37:05.927 に答える
0

これを行うためにjQueryを拡張する必要はありません..古いジェネリック関数を使用するだけです。

myFunction = function () { alert(this.id); }
$(".myclick").on('click', myFunction);

これはmyFuntion、クリックされた要素をコンテキストとして使用して呼び出します。

すでに持っているコードを使用したい場合は、$(this).myFunction();代わりに使用する必要があります$().myFunction

于 2013-01-14T03:37:17.483 に答える
-1

まず第一に、この小さなタスクを jQuery で拡張する必要はありません。

これがあなたができることです..

//looping through each li in ul
$('ul li').each(function(){
    //attach click event to li this refers to li here
    $(this).click(function(){
      //to alert ID of this list this refers to li here
     alert($(this).attr('id'));
      // to alert Text or html within li
     alert($(this).html());
    });
});

お役に立てれば

于 2013-01-14T04:31:04.797 に答える