2012-02-11 70 views
1

此腳本的第二個「單擊」功能不起作用,我認爲這只是一個語法問題。我對此很新。但是我需要找到一個簡單的方法,爲一組變量調用一次實時「點擊」功能。Efficent函數replaceWith用於多個類

該腳本的作品,只是不是第二部分。

我正在尋找一種有效的方法來替換一個不同的變量數組,每個匹配一個分類鏈接,並且不會每次創建一個新的函數。

任何建議將是偉大的!

在此先感謝

<script type="text/javascript"> 

    $(window).load(function(){ 

     $('a.pow').live("click",function(e) { 

      webgl = $('<iframe src="http://s..."> </iframe>'); 
      e.preventDefault();  
      $('#slider-wrapper').replaceWith(webgl); 
     }); 

     $('a.biff').live("click",function(e) { 

      video = $('<iframe src="http://s..."> </iframe>'); 
      e.preventDefault(); 
      $('#slider-wrapper').replaceWith(video);  
     }); 
    }); 

</script> 

HTML

<div id="slider-wrapper"> 
    <div> 
     <a class="pow" href=""> 
     </a> 
    </div> 
    <div> 
     <a class="biff" href=""> 
     </a> 
    </div> 

下一個可能是..

<div> 
     <a class="batman" href=""> 
     </a> 
    </div> 
</div><-- close slider wrapper --> 

回答

0

你可以給你所有的錨,可以加載iFrame的通用類,移動錨從類到自定義屬性的描述,並使事件處理程序對自定義屬性起作用相反。

<div id="slider-wrapper"> 
    <div> 
     <a class="link" href="" data-desc="pow"> 
     </a> 
    <div> 
    <div> 
     <a class="link" href="" data-desc="biff"> 
     </a> 
    <div> 
    <div> 
     <a class="link" href="" data-desc="batman"> 
     </a> 
    <div> 
</div> 

而在你的腳本:

<script type="text/javascript"> 

    var desc_url_map = { 
     "pow" : "http://s...", 
     "biff" : "http://s...", 
     "batman" : "http://s..." 
    }; 

    $(window).load(function() { 
     $('a.link').live('click', function(evt) { 
      item = $('<iframe src="' + desc_url_map[this.dataset.desc] + '"></iframe>'); 
      $('#slider-wrapper').replaceWith(item); 
      evt.preventDefault(); 
     }); 
    }); 

</script> 

希望不出現錯誤:)

+0

完美,我會給這是一個嘗試,謝謝!我在另一篇文章中注意到了數據集,但我看到的集成看起來非常混亂,點擊事件。 – BenderDrummer 2012-02-11 23:39:15

+0

似乎是某個地方的錯誤。我一直在檢查的東西,'e.preventDefault()'似乎工作正常,但我懷疑'evt.preventDefault()'應該是修復,不是它。我現在懷疑'[this.dataset.desc]'。我想知道'data-desc =「」'由於某種原因沒有進入事件流。儘管點擊事件很好,但似乎默認的'href =「」'發生了什麼,而不管e.prevent是什麼,儘管使用'evt.preventDefault()',click事件並沒有做任何事情。 – BenderDrummer 2012-02-12 07:06:04

+0

讓我去看看。道歉。 – caleb 2012-02-13 18:06:54