2014-06-25 30 views
0

我有一種情況,其中插入.after重新調整窗口的大小時。我只想插入一次,然後在調整大小時立即觸發 - 不會重複。什麼是解決這個問題的好方法?防止插入後重新調整大小jquery

if ($(options.accord) .length > 0) { 
    if ($(window).width() < 470) { 
    $tabs.addClass('example').after('enter tags here'); 
    } 
    $(window).resize(function() { 
    if ($(window) .width() < 470) { 
     $tabs.addClass('example').after('enter tags here'); 
    } 
    }); 
} 
+0

你想你呈現給被解僱一次在調整整個代碼? –

+0

我更新了代碼。我忘了包含resize()。我只是想調整大小調整大小時加載一次。 – Evan

+0

爲什麼不在做任何事之前檢查'.example'類 – Huangism

回答

1

您可以使用本地變量來注意after()是否已運行。內部功能仍然可以訪問本地變量當它運行:

if ($(options.accord) .length > 0) { 
    var afterAdded = false; 

    if ($(window).width() < 470) { 
    $tabs.addClass('example').after('enter tags here'); 
    afterAdded = true; 
    } 

    $(window).resize(function() { 
    if (($(window) .width() < 470) && ! afterAdded) { 
     $tabs.addClass('example').after('enter tags here'); 
     afterAdded = true; 
    } 
    }); 
} 
0

假設你刪除的example上課的時候規模大,你爲每個2個條件更多的代碼。您可以檢查example類,然後做你的添加/刪除

if ($(options.accord) .length > 0) { 
    if ($(window).width() < 470) { 
    if(!$tabs.hasClass('example')) { 
     $tabs.addClass('example').after('enter tags here'); 
    } 
    } 
    $(window).resize(function() { 
    if ($(window) .width() < 470) { 
     if(!$tabs.hasClass('example')) { 
      $tabs.addClass('example').after('enter tags here'); 
     } 
    } 
    }); 
} 
相關問題