簡體   English   中英

如何使用<a>標記中的</a> onclick()從另一個腳本更改變量

[英]How can I change a variable from another script with onclick() in an <a> tag

我有一個名為main.js的腳本,該腳本附加到index.html。 我在index.html中設置了一個onclick()函數,該函數需要更改變量的值。 如果腳本是用腳本標簽編寫的,那么這個問題將很容易,但是,盡管試圖弄清楚,但我不確定當通過腳本標簽引用腳本時該怎么做。 該代碼與該問題並非真正相關,但是無論如何這行都是。

<li><a href="main.html" onclick='card=thing;'>thing</a></li>

card是main.js中的變量,需要更改。 在main.js中,在onclick()事件之前,card設置為NULL。 非常感謝。

在home.js中編寫一個函數,然后在該函數內訪問和更改href變量。

html應該是這樣的

<li><a  id="variable" href="main.html" onclick='card=thing;'>thing</a></li>

在你的功能添加這一行

document.getElementById("variable").href="your reference";

您可以在腳本標簽或main.js中編寫函數,然后在onclick上調用它

<li><a href="javascript:void(0)" onclick='changeCard("thing")'>thing</a></li>
<script type="text/javascript">
    function changeCard(val) {
        card = val;
    }
</script>

我認為您的代碼在語法方面沒問題,因為如果main.js文件鏈接到同一行所在的html,則card是一個全局變量,您可以毫無問題地覆蓋它。

盡管這種情況下的問題可能是其他問題,因為當用戶單擊指向其href屬性中指向main.html文件的錨標記時,您正在更改該變量。

所以實際發生的是將執行兩個事件處理程序,第一個將是您的代碼來更改該變量的值,第二個將實際將您的窗口重定向到另一個html文件,從而更改當前窗口的實際上下文並它的全局變量不再有用,這沒有任何意義。

如果要在導航到其他地方之前在js中做某事,則需要將事件處理程序附加到anchor元素,並調用event.preventDefault()方法,以防止單擊anchor標記時的默認行為,換句話說,防止導航。 看起來像這樣:

// Js code:
var anchor = document.querySelector('a')
anchor.addEventListener('click', function(event) {
    event.preventDefault()
    // Do the stuff you want to do on click here, before navigating, etc
    card = thing

    // ... explicitly navigate
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM