如何onclick-触发非原生jQuery插件的动作?
我已经安装了第三方jQuery插件(它是一个手风琴)。 它显示在我的页面上,并按预期工作。
当我点击页面上的图像时,我想触发其中一个插件的动作(打开一个特定的幻灯片)。
我似乎无法获得正确的代码和/或语法。
我安装的插件是“EasyAccordion”(http://www.madeincima.eu/blog/jquery-plugin-easy-accordion/)。 它的.js源代码发布在这里: http : //pastebin.com/55JB4pr2 。
我在Drupal7页面上使用插件。
我不认为特定的插件,或者它在Drupal中使用的事实,与正确的jQuery使用相关。
jQuery与Drupal捆绑在一起。 我在我的页面上启动插件:
( function ($) { Drupal.behaviors.myEasyAccordion = { attach: function(context,settings) { $('#accordion1',context).easyAccordion({ autoStart: false, ... }); } }; })(jQuery);
在我的标记中,我有
... ... EASYACCORDION MARKUP ... ...
再次,使用此init和标记,手风琴出现/按预期工作。
在同一页面上,在另一个页面上,我添加了一个图像链接,即
... ... EASYACCORDION MARKUP ... ...
我想点击“myImg”div中的图像,让EasyAccordion捕捉到特定的打开“窗格”。 我认为,特定窗格的激活是通过以下方式解决的
line #127 jQuery.fn.activateSlide = function() {
函数,如上面提供的pastebin-link所示。
Iiuc,我需要在上面的init函数中添加代码,将图像单击绑定到EasyAccordion中的动作执行。
我的问题是 – 如何?
我想我需要开火(例如,幻灯片#3),
jQuery(this).activateSlide(3);
添加一些变体,
$('#myImg').click(function () { ... });
到init,将它附加到EasyAccordion init的函数()。 就像是?
( function ($) { Drupal.behaviors.myEasyAccordion = { attach: function(context,settings) { $('#accordion1',context).easyAccordion({ autoStart: false, ... }); ----> $('#myImg',context).easyAccordion({ ... ----> ????????? ----> }); } }; })(jQuery);
到目前为止,我找不到正确的语法。 至少,我无法让点击图像实际上导致EasyAccordion中的指定项目“激活”。
这两个post,
http://stackoverflow.com/questions/5492258/easyacordion-jump-to-desired-slidenum-jquery-plugin http://stackoverflow.com/questions/6243870/easyaccordion-jquery-plugin-callbacks
我认为很接近。 但是我仍然没有把语法撬到我的Drupal.behaviors ……节。
任何指导?
这很有效。
为每张幻灯片添加一个可定位的类,以便标记:
... ... ... ...
那么,在init中,
( function ($) { Drupal.behaviors.myEasyAccordion = { attach: function(context,settings) { $('#accordion1',context).easyAccordion({ autoStart: false, ... }); $('#myImg',context).click(function() { $("dt.slide_1").activateSlide(); }); } }; })(jQuery);
现在,点击#myImg div中的img会打开目标幻灯片…这里,’slide_1’,如预期的那样。