2017-03-07 71 views
0

我相信這是一個非常簡單的解決方案。我製作了這個javacript函數,用於測試div上是否存在某種CSS樣式,然後繞另一個div移動。但是,它不起作用,我不知道爲什麼。有人可以告訴我爲什麼這個JavaScript函數不執行?

的JavaScript:

function sale() { 
    var style = document.getElementsByClassName("product-single__price--wrapper").getAttribute("style"); 
    if (style !="display: none;") { 
     document.getElementByClassName("product-single__description").style.marginTop = "70px !important"; 
    } 
} 
window.onload = sale; 
+4

*「有人可以告訴我爲什麼這個JavaScript函數不執行嗎?」*你似乎沒有在任何地方調用函數?但即使你做了'document.getElementById(「ProductPrice」)。style.margin-top = ...'是一個錯誤。如果包含「-',則無法使用點符號訪問屬性。 –

+1

因爲沒有'style.margin-top'這樣的東西,除非你想從'style.margin'中減去一個名爲'top'的變量。我想你想'.style.marginTop'。 –

+0

這個函數在任何時候都不檢查CSS樣式嗎?如果不是我怎麼能這樣做呢? @FelixKling –

回答

1

我不會永遠建議這樣做,但如果你想調用該函數的時候,你需要把它與你想要得到毫秒的setInterval調用。

例子:

$(document).ready(function() { 
    setInterval(function() { 
     sale(); 
    }, 1000); 
}); 

OR

$(document).ready(function() { 
    setInterval(sale, 1000); 
}); 

這將調用每一秒。再次,可怕的可怕可怕的做法。但是,這將做你想要的。如果您希望更快地調用它,則相應地更改毫秒(1000毫秒= 1秒)。

+0

如果我將它包含在函數後面,它會一直運行它? –

+0

將它包含在'document.ready(function(){...});' – jdmdevdotnet

+1

或者只是'setInterval(sale,1000)'。不需要創建一個新的函數來調用一個函數。 –

相關問題