javascript中的Jquery.on()本机函数

Jquery .on() native function in javascript

本文关键字:本机 函数 on 中的 Jquery javascript      更新时间:2023-12-26

我已经创建了使用jquery最新版本1.11.1的小部件。当我将我的小部件添加到第三方网站时。

第三方网站有较低版本的jquery,例如1.5(可以是任何版本)。第三方网站jquery没有最新的功能。

例如最新版本功能

 jQuery(document).on("click", function(e) { 
...
});

所以我得到的错误函数是未定义的。如何解决此类问题。

或者我是不是用错误的方式创建了依赖jquery的小部件?如果有人知道如何实现不依赖第三方库的java脚本小部件,比如jquery的不同版本。

如果您正在使用事件委派,则此答案仅适用于

在jQuery1.5中,您有.delete()方法,您可以使用

$( "table" ).delegate( "td", "click", function() {
  $( this ).toggleClass( "chosen" );
});

不要使用.live(),因为它在版本>=1.9 中被删除

on方法在1.5版中未知

您应该使用以下语法:

jQuery(document).click(function(e) { 
...
});

jQuery(document).click(function(e) {此处,因为没有委派

对于动态HTML,使用live事件,因为它在旧的jquery版本中工作,并且您必须使用不推荐使用的语法,因为它使用旧的jquery。

如果必须动态处理数据,请使用live()

Jquery .on()在版本1.6+中添加。对于以前的版本,您需要使用.live()

由于您没有委派事件,您可以简单地使用.click()附加点击事件:

jQuery(document).click(function(e) { 
  ...
});

我认为没有任何直接/动态的方法来解决您的问题。即使您使用"点击"功能解决了问题。您可能会遇到另一个函数的问题,该函数在较低版本的JQuery中不受支持,或者具有不同的语法/行为。

例如,JQuery的较低版本可能不支持像"fadeOut(1000)"这样的少数动画(这只是一个例子。您需要检查是否支持这些类型的API。)

所以实际上,你可能只需要做跟踪和错误。使用所有可用的JQuery版本测试您的JQuery小部件/插件。

  1. 您可以找到部署小部件的网站的Jquery版本。看看这是否有助于获得版本。https://api.jquery.com/jquery-2/

  2. 根据版本的不同,您可以使用适当的受支持的API,例如,1.5版的live()和更高版本的and.click()。

当一切正常时,你很乐意去。