Javascript 从';调用自定义函数中的函数;外部';

Javascript 从';调用自定义函数中的函数;外部';,javascript,jquery,Javascript,Jquery,我刚刚问了这个问题()以了解如何在自定义函数中调用函数,它非常有效。不过,我也想在HTML中的onClick上使用prepareSlide函数。如何在此itemsslider函数中调用prepareSlide jQuery('.item_holder').itemSlider(); $.fn.itemSlider = function (details) { var itemHolder = this; this.prepareSlide = function(slideNum

我刚刚问了这个问题()以了解如何在自定义函数中调用函数,它非常有效。不过,我也想在HTML中的onClick上使用
prepareSlide
函数。如何在此
itemsslider
函数中调用
prepareSlide

jQuery('.item_holder').itemSlider();

$.fn.itemSlider = function (details) {
    var itemHolder = this;
    this.prepareSlide = function(slideNumber) {
        alert(1);
    }

    itemHolder.prepareSlide(1);
}
itemsslider
函数在滑块底部添加分页,并使用onClick立即导航到某个幻灯片(至少应该是这样),如下所示:


不能将其添加到onClick事件中,即使可以,也不应该添加

您编写的函数将prepareSlide()功能添加到jQuery,这意味着需要对jQuery对象调用它。您将无法在jQuery之外访问该方法

这实际上对您是一件好事,因为您无论如何都不应该在HTML中使用onClick属性。jQuery的事件处理模型更强大、更灵活,可以通过以下方式访问:

$('#number_1').on('click', function () {
     $('.item_holder').prepareSlide(1);
});

这实际上是(IMHO)jQuery最有用的功能之一,可以轻松访问事件和文档对象模型。如果您有雄心壮志,可以将选择器更改为$('.number'),并调整代码以从id字段中提取数字,并用3或4行代码覆盖整个列表。

我使用的是一个包含prepareSlide函数的用户定义函数。您的方法不适用于此构造。特别是考虑到我正在动态构建数字(取决于有多少)修正:通过我自己的一些添加,这在对象中确实有效。不过我用的是
this
而不是
$('.item_holder')
$('#number_1').on('click', function () {
     $('.item_holder').prepareSlide(1);
});