2014-03-01 39 views
5

我有一個使用jQuery gridrotator效果的畫廊。我想點擊按鈕「啓用效果」啓用效果。如何禁用或銷燬jQuery插件功能?

<button id="build">Enable Effect</button> 
<script type="text/javascript"> 
    $("button#build").click(function(){ 
     $('#ri-grid').gridrotator(); 
    }); 
</script> 

而且enablig影響正常工作(見本test)。要禁用這個插件,沒有destroy方法。所以我試圖returnfalse的功能,但不起作用。

<button id="destroy">Disable Effect</button> 
<script type="text/javascript"> 
    $("button#destroy").click(function(){ 
     $('#ri-grid').gridrotator(function(){ 
      return false; 
     }); 
    }); 
</script> 

如何禁用或銷燬此功能?
非常感謝您的幫助! :)

+1

您需要解除綁定任何事件和刪除的插件添加任何節點或類。你想要什麼最終結果?你想讓圖像仍然顯示,只是不動畫? – Mathletics

+0

是的,我希望圖像仍然可以不動畫顯示。 –

回答

1

也許有一個更好的辦法,但這種黑客似乎工作:

$('#ri-grid').data('gridrotator').$items.length = 0; 
0

希望這會令你的微笑 -

<button id="destroy">Disable Effect</button> 

<script type="text/javascript"> 
    $("button#destroy").click(function(){ 
     $('#ri-grid').gridrotator().stop(); 
    }); 
</script> 

瞭解更多關於.stop()功能 - http://api.jquery.com/stop/

+0

謝謝!但不適用於Gridrotator。 –

0
<button id="destroy">Disable Effect</button> 
<script type="text/javascript"> 
    $("button#destroy").click(function(){ 
     $('#ri-grid').stop(); 
    }); 
</script> 
+0

謝謝!但不停止動畫。 –

1

該gridrotator插件d oes似乎沒有內置禁用功能。

使用.remove()將刪除與被刪除的元素相關聯的所有綁定事件和jQuery數據。

嘗試刪除元素並將其插回原位。

$("button#destroy").click(function(){ 

    // remove plugin class so it doesn't rebind 
    $("#ri-grid").removeClass("gridrotator"); 

    var $prev = $("#ri-grid").prev(); 
    if($prev.length) { 

    // put back between siblings if necessary 
    $prev.append($("#ri-grid").remove()); 

    } else { 

    // or just re-add to its parent 
    var $parent = $("#ri-grid").parent(); 
    $parent.prepend($("#ri-grid").remove()); 

    } 

}); 
+0

非常感謝你!但僅適用於點擊,然後重新開始動畫。 –

+0

我會嘗試爲這個插件創建銷燬方法。 –

+0

更新爲刪除'gridrotator'類,以便插件在刪除並插入後不會重新綁定到 –

5

我制定和測試了一個很好的解決方法,但不是完美的解決方案,但它的工作。 簡單地從DOM樹刪除的項,然後重新裝入

 $('#ri-grid').html($('#ri-grid').html()); 
+0

它不完美,但它對我來說足夠好,謝謝你的時間:) – ServerSideSkittles

+0

歡迎你:)如果你找到一個更好的解決方法,請發佈它 –