2016-09-19 15 views
0

jQueryセレクタをある関数から別の関数に渡すにはどうすればよいですか? ある関数から別の関数に変数を渡すように機能しますか?関数から別の関数へのjQueryセレクタ

すなわち:

function hasSelector(){ 
 
    var items = $('#item1, #item2, #item3'); 
 
    return items; 
 
} 
 

 
function useSelector(){ 
 
    //var items = $('#item1, #item2, #item3'); 
 
    //items.on('click'...); 
 
    
 
    hasSelector().on('click', function(){ 
 
    alert(items); 
 
)}; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

編集:私はobjecthasSelector()を変更することを決めましたコメントにいくつかの明確化におかげで(私は言及を忘れてしまったパラメータaswellに合格しなければなりませんでしたそれでも私はまだ関数を使用しています。)

var hasSelector = { 
 
    items : function(){ 
 
    return $('#item1, #item2, #item3'); 
 
    } 
 
} 
 

 
function useSelector(){ 
 
    hasSelector.items().on('click', function(){ 
 
    alert(hasSelector.items(this)); 
 
    }); 
 
} 
 

 
useSelector();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="item1">Item 1</div> 
 
<div id="item2">Item 2</div> 
 
<div id="item3">Item 3</div> 
 
//returning [obj Obj] since I'm calling on all 3 items at once.

+2

セレクタではなくjQueryオブジェクトを返しています。自然に渡したり返すのは、他の言語と同じように機能します。 'click 'の後ろに閉じた' ''がありません。 –

+0

欠落している見積もりを修正しました。この問題を引き起こした問題がありますか? 'items'変数が魔法のようにコールサイトに現れることを期待していましたか?本当にクリックしたアイテムへの参照を取得しようとしていますか? *実際の問題は何ですか? –

+0

アイテムがクリックで定義されていません。 – epascarello

答えて

0

あなたは間違っsymbolesによって機能を閉じているあなたのhasSelector機能は、あなたがそれを使用することができ、jQueryオブジェクトを返すので)};正しいものは});

function hasSelector(){ 
 
    var items = $('#item1, #item2, #item3'); 
 
    return items; 
 
} 
 

 
function useSelector(){ 
 
    //var items = $('#item1, #item2, #item3'); 
 
    //items.on('click'...); 
 
    hasSelector().on('click', function(){ 
 
    alert($(this).html()); 
 
    }); 
 
} 
 
            
 
useSelector();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> 
 

 
<div id="item1">item1</div> 
 
<div id="item2">item2</div> 
 
<div id="item3">item3</div>

+1

これはどのように答えますか?*関数から別の関数にjQueryセレクタを渡すにはどうすればよいですか?*これは "なぜ私のコードが機能しないのですか"と答えるでしょう。 –

+1

急いで準備されたコード例では、 –

0

です。

function hasSelector() { 
    var items = $('#item1, #item2, #item3'); 
    return items; 
} 

function useSelector(items) { 
    items.on('click', function() { 
    alert($(this).html()); 
    }); 
} 

useSelector(hasSelector()); 
関連する問題