在幻灯片放映中使用.delegate函数

时间:2011-10-08 05:46:50

标签: javascript jquery ajax delegates slideshow

我有一个为我的页面运行幻灯片的脚本。我正在尝试使用.delegate()插入幻灯片中显示的一组新图像,包括缩略图。我正在使用.load()函数加载外部<div>以替换活动页面中的某些HTML。我还有带ID的按钮,(#kick1#kwick2等),用于确定加载的幻灯片组。

 jQuery("#kwick2").click(function () {
     jQuery("body").delegate('#slideshow', 'click', function() {
         jQuery('#slideshow').load('/design.html #design');      
     )};
 )};

非常确定语法是完全错误的。有人能帮助我吗?

我创建的#slideshow div是直接包含其他div的内容 受幻灯片剧本的影响。在div ID #slideshow

<div class="main_image"><div class="desc"><div class="image_thumb">

单击KWICK按钮时会直接替换它们,它们都非常自我解释,图像拇指有图像链接的无序列表。

2 个答案:

答案 0 :(得分:1)

每次单击按钮时都不应重新进行转发。你做错了。

相反,你应该拥有的是:

var foobar = (function () {

   var func , mod1 , mod2;
   mod1 = function () {
      /* do something in state 1 */
   };
   mod2 = function () {
     /* do something in state 2 */
   };

   return {
      state: function (e) {
         switch (this.id){
            case 'kwick1':
               func = mod1;
               break;
            case 'kwick2':
               func = mod2;
               break;
         }
      },
      callback: function (e) {
         func.call();
      }
   }
})();

jQuery("#kwick1").click( foobar.state ); // and you really should delegate this
jQuery("#kwick2").click( foobar.state );
jQuery("body").delegate('#slideshow','click', foobar.callback);

或类似的东西..

不,我没有测试此代码。它是为了解释这个概念而写的,而不是用勺子喂人。

答案 1 :(得分:0)

不确定我是否理解了这个问题,无论如何你必须指定你委托的事件

 jQuery("#kwick2").click(function () {
 jQuery("body").delegate('#slideshow',"click", function(){
    jQuery('#slideshow').load('/design.html #design');      
    )};
 )};

delegate