jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了插件选择器元素上的jQuery.live()大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
好吧,我的问题是,我创建了一个jQuery插件,它将点击和鼠标悬停事件绑定到选择器提供的元素.现在,我需要那些事件,而不是“.live”事件,经过大量的搜索,我找到了一个位于 here的“解决方案”

其中,给定的解决方案如下..

(function($) {
  $.fn.liveBindTest = function() {
    return this.each(function() {
      $(this).click(function(){
        console.log('click');
        return false;
      });
    });
  };
})(jQuery);

$('a').live('click',function(){ $(this).liveBindtest(); });

然,这没有意义,因为插件不会将实时点击绑定到提供的“选择器”.另一方面,它会”将’click事件绑定到选择器元素. (在这种情况下,锚标记,而不是由开发者选择器集动态提供)

上面的示例只是采用漫长的路径将实时点击绑定到所有锚元素.其中,适用于您需要为插件实时绑定特定元素的情况.但我的插件完全基于最终开发人员使用插件提供的选择器.所以这个解决方案意味着开发人员每次都要,

A.在实际启动插件之前,需要手动绑定PLUGIN需要的每个实时事件.有点像..

$('*:not(.complicatedSELEctorHerE)').live('click',function(){
    $(this).liveBindtest();
});

要么

B.他们需要进入jQuery.plugin.js文件,转到代码底部,然后修改那里的实时事件.这将是一种丑陋的做事方式,并且根本不可移动,这也是所需要的,便携性.

所以我最后的问题,以确保每个人都清楚..

问题:如何将LIVE事件绑定到提供给插件的所有SELECTORS?

请不要在下面提供明显的解决方案,因为它不起作用……

(function($) {
  $.fn.liveBindTest = function() {
    return this.each(function() {
      $(this).live('click',function(){
        console.log('live clicked');
        return false;
      });
    });
  };
})(jQuery);

解决方法

每个jQuery对象都有一个SELEctor属性,所以只需使用:

$.fn.liveBindTest = function () {
    $(this.SELEctor).live('click',function () {
        console.log('live clicked');
        return false;
    });
});

当然,为了使其工作,必须使用某种选择器,即:

// This will work
$('body').liveBindtest();

// This WON'T work
$(document.body).liveBindtest();

大佬总结

以上是大佬教程为你收集整理的插件选择器元素上的jQuery.live()全部内容,希望文章能够帮你解决插件选择器元素上的jQuery.live()所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。