我正在嘗試創建一個腳本,當單擊按鈕時,它會更改 DIV 的類,然后重新加載該 DIV 的內容。
到目前為止,我已經創建了一個成功更改 DIV 類的腳本。
document.addEventListener("DOMContentLoaded", function (event) {
jQuery("#button").click(function () {
document.getElementById("id").className = "newClass";
});
});
但我仍然需要它用新類重新加載 DIV 的內容。我環顧四周尋找解決方案,并找到了我嘗試添加的以下代碼:
$("#id").load(window.location.href " #id");
但是給了我以下錯誤:
(index):470 Uncaught TypeError: $ is not a function
我在這里做錯了什么?
uj5u.com熱心網友回復:
在普通的 jQuery 中,你會使用:
jQuery(function($) { // DOM is now ready and jQuery's $ alias sandboxed
$("#button").on("click", function () {
$("#id")
.addClass("newClass")
.load(window.location.href " #id");
});
});
但我不確定你為什么要使用相同的location.href- 以及它與任何“內容重繪 ”有什么關系。
此外,通過執行上述操作,您將獲得重復#id的元素,一個在另一個:
初始狀態:
<div id="id">Test test test</div>
單擊“按鈕”一次或多次后:
<div id="id" class="newClass">
<div id="id">Test test test</div>
</div>
這顯然不是你想要的。
uj5u.com熱心網友回復:
首先,您必須將 jQuery 映射到 $ 以使用像 $("#id").load(window.location.href " #id"); 這樣的代碼。否則,您必須使用 jQuery("#id").load(window.location.href "#id"),就像您在示例中所做的那樣。這是通過以下方式完成的:
jQuery(document).ready(function( $ ){
// your Code goes here
});
您還出于相同目的使用了純 JavaScript 和 jQuery。document.getElementById("id") 等于 $('#id')。
可以有很多類名,因此函式或屬性 .className 沒有意義。有一個類名串列,您可以通過 jQuery 中的 .addClass() / removeClass() 或普通 javaScript 中的 .classList.add() / classList.remove() 添加/洗掉它們。
jQuery(document).ready(function( $ ) {
$("#button").click(function () {
$("#id")
.addClass("newClass")
.load(window.location.href " #id");
});
});
按照 Roko 的描述加載內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/425079.html
標籤:javascript jQuery WordPress
上一篇:帶影像旋轉的縮放計算
