JQuery/JavaScript-访问方法
我对JavaScript编程有点陌生,不了解方法访问。我有一些代码如下所示:JQuery/JavaScript-访问方法,jquery,Jquery,我对JavaScript编程有点陌生,不了解方法访问。我有一些代码如下所示: (function ($) { $.fn.myCustomUIElement = function (options) { var props = { value: 1 }; return this.each(function () { initialize(); }); function initialize() { /* initialization
(function ($) {
$.fn.myCustomUIElement = function (options) {
var props = { value: 1 };
return this.each(function () { initialize(); });
function initialize() { /* initialization code */ }
function toggle() { if (props.value == 1) { props.value = 0; } else { props.value = 1; } }
};
})(jQuery);
我的HTML页面有一个锚定标记,负责切换myCustomUIElement的状态。显示此内容并初始化myCustomUIElement的HTML如下所示:
<div id="myElement"></div>
<a href="#" onclick="toggleFromHtml('myElement');">toggle</a>
<script type="text/javascript">
$(document).ready(function () {
$("#myElement").myCustomUIElement();
});
function toggleFromHtml(e) {
$("#" + e).toggle();
}
</script>
$(文档).ready(函数(){
$(“#myElement”).myCustomUIElement();
});
函数toggleFromHtml(e){
$(“#”+e).toggle();
}
我的问题是,myCustomUIElement对象中的toggle方法从未被调用。我可以很好地调用toggleFromHtml。如何访问在JavaScript中定义的方法,如上所示?有办法吗?请注意,如果可能的话,我不想重写第一个代码片段中显示的JavaScript。如果可能,我想从toggleFromHtml方法调用该方法
谢谢大家! 我想你已经有了一个插件的开始,你需要扩展jQuery对象。下面是一个示例,注意
$.fn.extend({})
myCustomUIElement()
将是您的方法名
jQuery插件
(function($){
$.fn.extend({
myCustomUIElement: function(options){
return this.each(function(){
new $.MyCustomUIElement(this, options);
});
}
});
$.MyCustomUIElement = function(target, options){
var $target = $(target);
$target.bind('click', {}, function(e){
e.preventDefault();
// your event code
alert(options.myVar + ' ' + $(this).text());
});
};
})(jQuery);
您的initjavascript
$(document).ready(function(){
$('#wrap .myElement').myCustomUIElement({
myVar: 'click me!'
});
});
还有HTML
<div id="wrap">
<a class="myElement" href="#">toggle 1</a>
<a class="myElement" href="#">toggle 2</a>
</div>
我会继续看这个,我想我一开始误解了你的问题,但基本上这是在创建一个jQuery插件..toggle();是插件代码中的私有方法。您需要执行类似$.fn.toggle()=函数(选项){/*dostuff*/}的操作才能以您尝试的方式访问它。另外,我相信toggle已经是JQuery中的一种方法了;你可能想给它起个别的名字。您也可以通过$.fn.mycustomUIElement.toggle=function(){}和$('selector').mycustomUIElement.toggle()@mervyn访问它。问题是,我无法从名为$.fn.myFunction=function(){}的新方法访问props属性。这就是我的问题所在。但是我不知道如何克服它。不能调用未公开的方法。我不确定你到底想完成什么,需要进一步澄清。