Javascript 如何在自定义jQuery函数中使用函数

Javascript 如何在自定义jQuery函数中使用函数,javascript,jquery,Javascript,Jquery,找不到具体的答案 如果我创建一个jQuery函数,比如说,将其称为“doMobile”,我希望它使用其中的一个函数,如果是这样,我该怎么办 这就是我想做的: $.fn.doMobile = function(somefunctioninside) { if ( $('.mobile').is(':visible') ) somefunctioninside(); }; $('.menu').doMobile(function() { $(this).css('backgrou

找不到具体的答案

如果我创建一个jQuery函数,比如说,将其称为“doMobile”,我希望它使用其中的一个函数,如果是这样,我该怎么办

这就是我想做的:

$.fn.doMobile = function(somefunctioninside) {
  if ( $('.mobile').is(':visible') )
     somefunctioninside();
};

$('.menu').doMobile(function() {
  $(this).css('background-color', 'red');
});
当我喜欢它时,$(这个)-$('.menu)不会变成红色。

试试这个

$.fn.doMobile = function (someFunction) {
    someFunction.call(this);
};

$('.menu').doMobile(test);

function test() {
   this.css('background-color', 'green');
    alert("came");
}
通过
此参考@卡尔·安德烈·加农是这样说的


@瑟布鲁斯,你标记为重复的问题不是好问题。链接的问题不使用jQuery,这在这里很重要,因为OP希望将
this
用作HTML元素。我肯定某个地方有一个重复的,但不是这个(或者有更好的)。问题是如何调用
somefunctioninside
。链接的问题准确地解释了这一点。@Cerbrus我同意,但答案无法解决OP问题。在阅读之后,他会问“如何使
这个
成为HTML元素?”它确实回答了OP在这里提出的问题。我不认为这个问题会被重新打开,所以这里是你的答案。在您的情况下,您希望使用以下内容:
this.each(somefunctioninside)
,但也可以使用
somefunctioninside.call(this)。第二个是不同的,
这将不是一个HTML元素,而是一个jQuery对象,所以不需要将它包装在
$()
中。我需要$(this).css('background-color',red')在test()中。我将多次使用此功能来检查文档是否在移动设备上被观看,如果是,则检查效果元素。@matt4692通过传递引用$('.menu').doMobile(test,test1,test2)来检查更新后的帖子以使用conman;你可以通过更多的考试,这是最好的方法吗?我的意思是,当我使用.click(function()…时,我不需要像你使用“elem”那样指定元素。有什么办法吗?@matt4692无法给出答案,所以我已经对你关于如何做的问题发表了评论。