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

Give selector.method as parameter, call it

本文关键字:调用 参数 selector method      更新时间:2023-09-26

我有一个函数$.doSomething(),它做一些事情,然后应该调用$('selector').function()的jQuery形式中的其他函数。我不想让$.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>

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

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