将selector.method作为参数,调用它

时间:2013-02-17 15:04:21

标签: javascript jquery callback function-pointers

我有一个函数$.doSomething()执行某些操作然后应该调用jQuery形式的$('selector').function()中的其他函数。我不希望$.doSomething()知道它的调用内容,应该由用户决定。

我在JSBin上创建了一个小例子: http://jsbin.com/umonub/11/edit

是否可以将$('#foo').doStuff();的调用存储在函数对象中,并将其作为参数提供给函数然后调用它?

这是示例代码(如果某人无法访问JSBin或在那里被删除):

的script.js

$(document).ready( function() {
  var callback = $('#foo').doStuff();
  $.doSomething(callback);
});


$.extend({
  doSomething: function(callback) {
    //do some stuff
    //call the callback
  }
});


$.fn.doStuff = function() {
  $(this).text("Stuff Done");
};

的index.html

<html>
<head>
  <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  <script src="script.js"></script>
</head>
<body>
  <p id="foo"></p>
</body>
</html>

1 个答案:

答案 0 :(得分:4)

当然,只需将$('#foo').doStuff()放入函数中:

var callback = function() {
    $('#foo').doStuff();
};