gpt4 book ai didi

jquery - jQuery 插件可能存在范围问题?

转载 作者:行者123 更新时间:2023-12-01 03:53:06 25 4
gpt4 key购买 nike

我正在尝试制作一个 jquery 插件(只是为了好玩),但我似乎无法在某些部分做我想做的事情。

(function($){

var resetText = function(){ if (this.value == "") this.value = this.title; }
var clearText = function(){ if (this.value == this.title) this.value = ""; }

$.fn.placeHolder = function() {
return this.each(function(){
resetText(); // <-- this doesn't work
$(this).focus(clearText).blur(resetText);
});
};
})(jQuery);

基本上,我希望将 title 属性复制到 doc.ready 和 field.blur 上的 value 属性(如果该值为空)

现在,它可以在Blur上运行,但不能在document.ready上运行

我感觉这是一个范围问题,但老实说我不知道​​如何解决它。

亲自看看:http://jsfiddle.net/Usk8h/

最佳答案

您遇到的是问题,而不是范围问题。

这样做:

resetText.call( this );
<小时/>

.call() 方法允许您将 resetText() 函数中 this 的值设置为您作为第一个参数。

在本例中,您将在 .each() 中传递由 this 表示的 DOM 元素。

<小时/>

编辑:

您实际上可以将插件减少到这样:

$.fn.placeHolder = function() {
return this.focus(clearText).blur(resetText).blur(); // <-- triggers blur
};

关于jquery - jQuery 插件可能存在范围问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6036028/

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