如何创建自己的函数并将其称为另一个函数?像 -
$('.mycls li').hover(function() {
var divid = $(this).find('li').attr('some_attr');
call myfunc(divid);
});
function myfunc(divid)
{
$(divid).show();
//I want to hide rest all divs
$('div#info1').hide();
$('div#info2').hide();
$('div#info3').hide();
}
我有两个问题,一个是如何在jquery中实现这个逻辑第二个是哪个属性可以用来引用特定的div到特定的div
我的div是 -
<div id="info1">
//some information
</div>
<div id="info2">
</div>
....
答案 0 :(得分:5)
您的函数应该能够像jquery的其他方法/函数一样对包装集进行操作。考虑一个插件,很容易:
或者看:
答案 1 :(得分:1)
您无需使用关键字call
来调用函数。所以只需使用
myfunc(divid);
调用你的函数就行了。
要将li
- s与div
- s相关联,您可以使用ID命名方案,例如,以广告开头提供您所有的li
- 以及所有内容div
ids以“info”开头,但是后面的位是相同的。
<li id='d1'> </li>
<li id='d2'> </li>
<li id='d3'> </li>
<div id='info1'></div>
<div id='info2'></div>
<div id='info3'></div>
然后使用
$('.mycls li').hover(function() {
// get the number part of the li id and use it to
// build the divid by appending it to "info"
var divid = "info" + $(this).attr('id').slice(1);
myfunc(divid);
});
function myfunc(divid)
{
$("#" + divid).show();
//hide all divs that do not have id=divid
$("div:not(#" + divid + ")").hide();
}
答案 2 :(得分:1)
我写了这个:
jQuery.fn.doSomeStuff = function(options, callback) {
var $elem = $(this[0])
var args = options || {};
// doSomeStuff
alert("DOM element: "+$elem.html());
alert("this ia a parameter:"+ args.aParameter);
if (typeof callback == 'function') { // make sure the callback is a function
callback.call(this); // brings the scope to the callback
}
return $elem; //ensures jquery chainability
};
您可以尝试here