jQuery选择器从一个函数到另一个函数

时间:2016-09-19 14:02:22

标签: javascript 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>

修改:由于评论中的一些说明,我决定将hasSelector()更改为object(我必须传递参数以及我在这里忘记提及的内容。尽管如此我还在用一个函数。)

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 个答案:

答案 0 :(得分:0)

你已经通过错误的符号)};关闭了函数,正确的是});

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 :(得分:0)

由于你的hasSelector函数返回一个jQuery对象,你可以使用它。

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

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

useSelector(hasSelector());