gpt4 book ai didi

javascript - 单击事件在 jQuery 插件中无法正常工作

转载 作者:数据小太阳 更新时间:2023-10-29 06:03:32 26 4
gpt4 key购买 nike

我正在编写一个 jQuery 插件,但我遇到了一个问题:

我的 HTML 元素

<a id="trac"></a>

调用插件的我的JS

$('#trac').myplugin();

我的插件

$.fn.myplugin = function(){
var $root;
return this.each(function(){
$root = $(this);
$root.live('click',function(){
console.log('here');
});
});
}

碰巧“这里”永远不会显示。但是如果我使用...

 $('#trac').live('click',function(){
console.log('here');
});

...显示“这里”。我不明白为什么会这样,因为 $root 和 $('#trac') 是完全相同的 jQuery 对象。

我该如何解决?

谢谢!

最佳答案

“.live()”函数需要一个选择器,而在您的插件中您没有给它一个。您构建的 jQuery 对象 ( $(this) ) 是一个有效对象,但不涉及选择器字符串。

您可以直接绑定(bind)处理程序:

  $root.click(function() { ... });

详细说明:您说,“...因为 $root 和 $('#trac') 完全相同。”问题是事实并非如此。当您使用选择器字符串构建 jQuery 对象时,该对象会保留该选择器字符串。从“$(this)”构建“$root”时没有字符串。 “.live()”函数通过在 <body> 上创建一个处理程序来运行。元素,然后测试针对该选择器冒泡的每个事件的目标。

关于javascript - 单击事件在 jQuery 插件中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6411326/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com