2011-10-08 87 views
-1

我有一個運行我的網頁幻燈片的腳本。我試圖使用.delegate()插入幻燈片中顯示的一組新圖像,包括其縮略圖。我正在使用​​函數來加載外部<div>以替換活動頁面中的某些HTML。我也有身份證,(#kick1#kwick2等)確定哪些設置的幻燈片顯示加載按鈕。使用幻燈片功能.delegate顯示

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

很確定這個語法是錯的。有人能幫我嗎?

#slideshowdiv是我創建的包含一些其他div s直接 影響幻燈片腳本。在div ID #slideshow

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

當你點擊一個按鈕KWICK這些都是直接更換,他們都是相當多的自我解釋,像拇指具有與圖像鏈接的無序列表。

回答

1
每次

你不應該再deligate單擊該按鈕。你做錯了。

相反,你應該是這樣的:

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); 

或者類似這樣的東西..

而且沒有,我沒有測試此代碼。它是爲了解釋這個概念而寫的,而不是用勺子喂人。

0

不知道我是否理解了問題好了,反正你必須指定什麼事件你委託

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

delegate

+0

但它不是單擊它的整個腳本,那不是適用於插入新的內容,檢查此鏈接http://hovaness.com/work/,看看我的意思是,在加載頁面的腳本工作,那麼當你點擊設計新照片加載,但沒有效果和沒有說明 –