gpt4 book ai didi

javascript - jQuery 插件选项

转载 作者:行者123 更新时间:2023-11-30 13:43:08 27 4
gpt4 key购买 nike

首先,我知道这是一个基本的 JS 问题,而不是 jQuery。我正处于那个学习点,我似乎无法完全解决一些范围问题。所以我需要一些解释。

我一直在阅读我能找到的每篇文章/教程,但只需要一些答案。我设置了这个基本代码来进行试验(因为实际代码太大而无法在此处发布)。

在下面的实验中,当点击 selector1-change 按钮时,'cmd' 变量被正确显示,但是对 this.options 的引用是'undefined',因为它是 MySelector() 的不同实例,除非我我走了。

那么如何调用这样一个对象的实例呢?

示例:

您可以通过创建它来使用 jQueryUI 的对话框,然后您可以向它传递命令,如 $('#mydiv').dialog('close');这将访问附加到该元素的实例。这是如何实现的?

JQUERY_MYSELECTOR.JS

(function($){
$.fn.MySelector = function(incoming) {

if (typeof(incoming) != 'object') {
return runCommand(incoming);
}

var options = $.extend({},{
id: false,
backgroundColor: false
},incoming);

function runCommand(cmd) {
alert('blah:'+this.options.backgroundColor+"\n"+'cmd:'+cmd);
}
}
})(jQuery);

脚本

<script type="text/javascript" src="jquery_myselector.js"></script>
<script type="text/javascript">
$j(document).ready(function() {
$j('#selector1).MySelector({ backgroundColor: '#000000' });
$j('#selector1-change').click(function() {
$j('#selector1').MySelector('mooocow');
});
});
</script>

风格

<input type="button" value="selector1" id="selector1" />
<br/>
<input type="button" value="selector1-change" id="selector1-change" />

已更新忘记在 selector1 上使用插件(duh)

最佳答案

在为选项赋值之前调用 runCommand - options 在 runCommand 的主体中具有值 undefined。不要问我 JS 是如何在你声明之前看到 runCommand 的主体的,但它可以。

另外,在MySelector的第一层,this绑定(bind)了运行$j('#selector1-change')的结果,是一个数组。您将需要迭代该数组。

尝试这样的事情:

(function ($) {
function runCommand(e, cmd) {
alert('blah:' + e.options.backgroundColor + "\n" + 'cmd:' + cmd);
}

$.fn.MySelector = function (incoming) {
this.each(function () {
if (typeof (incoming) != 'object') {
return runCommand(this, incoming);
} else {
this.options = $.extend(this.options || {
id: false,
backgroundColor: false
}, incoming);
}
});
}
})(jQuery);

关于javascript - jQuery 插件选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1151957/

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