jQuery init函数返回其父对象

时间:2012-04-21 19:04:02

标签: jquery object slideshow

我正在努力实现一些非常基本的东西。我正在使用一个公开可用的jQuery模块(称为slides),但我需要以某种方式对其进行修改,以便我可以从外部控制对象。

现在初始化时如下:

$('#myDivId').slides({
    preload: false,
    generatePagination: false
});

一切正常,但我以后没有看到任何方式访问幻灯片对象。像这样:

var slideshow=$('#myDivId').slides({
    preload: false,
    generatePagination: false
});

现在我希望能够做到这样的事情:

slideshow.animate('next');

变量幻灯片的内容不是实际对象。我认为这与jQuery的工作方式有关。

一旦这个工作,我将能够对幻灯片进行更具体的调用,从而使其适应我的'前端使用环境'。

现在我想要的是要返回的实际生成的对象,或者至少在返回的数据中另外可用。

有人能指出我在正确的方向吗?

Click here to see demonstration in jsFiddle

谢谢!

3 个答案:

答案 0 :(得分:0)

function slides() ($.fn.slides)是一个jQuery方法。在jQuery中,jQuery.fn或$ .fn是所有jQuery对象的原型对象。如果向此对象添加函数,则该函数将成为jQuery方法。


使用变量作为jQuery对象,你应该这样做:

var obj = $("#myDivId") // now obj, is a jquery object

你可以用这种方式使用jquery对象方法:

obj.slides();

答案 1 :(得分:0)

  

一旦这样做,我就可以对幻灯片进行更多特定调用,从而使其适应我的'前端使用环境'。

嘿看...... https://github.com/nathansearles/Slides/blob/master/source/slides.js#L123

这对你有帮助吗?

/*
Method Calls - The good stuff
============================================================

Play:
    $("#slides").slides("play");

Pause:
    $("#slides").slides("pause");

Stop:
    $("#slides").slides("stop");

Next:
    $("#slides").slides("next");
        - Uses default effect

    $("#slides").slides("next","fade");
        - Define effect, "slide" or "fade"

Previous:
    $("#slides").slides("previous");
        - Uses default effect

    $("#slides").slides("previous","fade");
        - Define effect, "slide" or "fade"

Goto a slide
    $("#slides").slides("slide",2);
        - Goto slide 2 using default effect

    $("#slides").slides("slide",4,"fade");
        - Define effect, "slide" or "fade"

Update:
    $("#slides").slides("update");
        - Rebuilds pagination 

Destroy:
    $("#slides").slides("destroy");
        - Removes SlidesJS, returns to predefined state

Status:
    $("#slides").slides("status");
        - Returns JSON object:
            {
                current: 4,
                state: "playing",
                total: 7
            }

    $("#slides").slides("status","current");
        - Returns current slide number

    $("#slides").slides("status","state");
        - Returns playing, paused, or stopped

    $("#slides").slides("status","total");
        - Returns total slides in slideshow
*/

如果这不是您要执行的操作,您可以随时查看示例http://slidesjs.com/或报告问题https://github.com/nathansearles/slides/issues以获取更具体的帮助或要求提供新功能。如果你想要做的事情不是由插件处理的,你必须请求该功能或编辑插件代码(提示:第一个答案更好)

答案 2 :(得分:0)

使用jQuery的触发器方法,我能够模拟幻灯片中某些元素的行为,从而找到一种不需要调用父对象上任何方法的方法。