我想知道是否有人新的如何在“这个”关键词的范围内保持链接控制。当使用.find(this).click时,它会突破链条。任何人都知道如何防止链条破坏
(function($) {
$.fn.mycontrol = function() {
$(window).resize(function() {
alert('resize')
}).scroll(function() {
alert('scroll')
}).find(document).bind('init', function() {
alert('scroll')
}).ready(function() {
$(this).trigger('init');
}).find(this).click(function() {
alert('click'); // $(this) loses scope here
});
})(jQuery);
$(document).ready(function() {
$('#mycontrol').mycontrol()
});
答案 0 :(得分:0)
如果我理解了您正在寻找的内容,您应该可以在开始链接之前保存this
的值:
(function($) {
$.fn.mycontrol = function() {
var that = this;
$(window).resize(function() {
alert('resize')
}).scroll(function() {
alert('scroll')
}).find(document).bind('init', function() {
alert('scroll')
}).ready(function() {
$(that).trigger('init');
}).find(that).click(function() {
alert('click'); // $(this) loses scope here
});
})(jQuery);
答案 1 :(得分:0)
Chaining创建了不可维护的代码。将其分解为单独的行:
var $window = $(window);
$window.resize(function()
{
alert('resize')
});
$window.scroll(function()
{
alert('scroll')
});
// etc.
然后你可以阅读它,你可以使用调试器逐步执行它,你可以删除和删除逻辑而不会破坏任何东西。
答案 2 :(得分:0)
window
是一个对象窗口。
这是包含HTML对象的window.document。
所以$(window).find(this)将jquery空对象作为$(window).find(document)返回。
$(document).find(this)
的作用相当于$(window.document)
。