Javascript 我能在没有安德的情况下使用qwery和bean吗?

Javascript 我能在没有安德的情况下使用qwery和bean吗?,javascript,dom,javascript-events,ender,Javascript,Dom,Javascript Events,Ender,我刚刚开始尝试使用微库而不是jQuery,我想使用qwery和bean。如果我设置bean.setSelectorEngine(qwery)为什么以下操作不起作用 bean.on('.masthead', 'click', function () { console.log('click fired'); }); 我也在使用bonzo for DOM实用程序,所以我将它设置为使用美元和qwery,这样我就可以像jQuery一样选择元素:例如,$(“.masthead”) 这也不起作用。

我刚刚开始尝试使用微库而不是jQuery,我想使用qwery和bean。如果我设置
bean.setSelectorEngine(qwery)为什么以下操作不起作用

bean.on('.masthead', 'click', function () {
    console.log('click fired');
});
我也在使用bonzo for DOM实用程序,所以我将它设置为使用美元和qwery,这样我就可以像jQuery一样选择元素:例如,
$(“.masthead”)

这也不起作用。我应该不能在bean中使用以下内容吗

bean.on($('.masthead'), 'click', function () {
    console.log('click fired');
});
也许我遗漏了bean文档中的一些重要内容。。我需要做什么来解决这个问题


此外,我尽量避免使用Ender,如果可能的话,我尽量将我的外部库减少到最低限度。

是的,您可以在没有Ender的情况下同时使用所有这些库。但是您必须自己连接这些库之间的所有连接

这应该让你开始:

// make Bean and Bonzo use Qwery 
// as their internal selector engine 
bean.setSelectorEngine(qwery);
bonzo.setQueryEngine(qwery);

// to use $ instead of bonzo
function $(selector, root) {
    return bonzo(qwery(selector, root));
};

// $() will return a bonzo object
// so if you want to be able to use 
// bean's methods on the bonzo object 
// like $().on()
// you are going to have to extend bonzo
bonzo.aug({
  on: function (eventName, callback) {
    return this.each(function (elem) {
        return bean.on(elem, eventName, callback);
    });
  },

  // do the same for bean's other methods (fire, off, etc)
});

// now you should be able to do this:
$('.masthead').on('click', function () {
    console.log('click fired');
});

希望有帮助!:)

为了插嘴,我在上面举了@Johnny的例子,使它更通用一些,因为我也有同样的问题。这个例子是在CoffeeScript+Subline Contrib中,但是一般的想法是,您不需要手工包装每个Bean函数,您可以通过操纵参数在循环中完成:

  # Setup Qwery/Bonzo
  window.$ = (selector, root) ->
    bonzo qwery(selector, root)

  # Glue Bean event handling into Bonzo/Qwery
  events =
    clone : ->
      args = _.toArray arguments
      bean.clone.apply null, args

  _.each ['on','one','off','fire'], (ev) ->
    events[ev] = ->
      args = _.toArray arguments
      this.each (elem) ->
        bean[ev].apply null, _.cons(elem, args)

  bonzo.aug events

希望这对将来的人有帮助。

非常感谢@Johnny,我现在就试试这个
  # Setup Qwery/Bonzo
  window.$ = (selector, root) ->
    bonzo qwery(selector, root)

  # Glue Bean event handling into Bonzo/Qwery
  events =
    clone : ->
      args = _.toArray arguments
      bean.clone.apply null, args

  _.each ['on','one','off','fire'], (ev) ->
    events[ev] = ->
      args = _.toArray arguments
      this.each (elem) ->
        bean[ev].apply null, _.cons(elem, args)

  bonzo.aug events