大家都事先感謝您。在下面的代碼中,我想從#foo div開始,數據值=「no」,點擊後我應該能夠執行操作並將值更改爲「yes」。然後,當我再次單擊div時,我想將值更改回「否」,並且每次點擊都會發生同樣的情況。我的邏輯出了什麼問題,我試圖用不同的方式來使用attr()。我不能把它做
<div id = "foo" data-clicked="no"> #FOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO </div>
$(document).ready(function(){
//在這裏,如果數據屬性附加傷害:data-clicked="no"
然後當我點擊FOO股利應在控制檯的值更改爲yes和警報「更改爲是」,這它
if($("#foo").data("clicked") === "no"){
$("#foo").on("click",function(){
$("#foo").data("clicked","yes");
alert("changed to yes")
console.log($("#foo").data("clicked"))
})
}
如果數據更改爲是爲什麼犯規下面的代碼evalute爲真?它不工作
if($("#foo").data("clicked") === "yes"){
$("#foo").on("click",function(){
$("#foo").attr("data-clicked", "no");
$("#foo").data("clicked","no");
alert("off")
console.log($("#foo").data("clicked"))
console.log($("#foo").attr("data-clicked"))
})
}
});
我也試過下面,它沒有工作......我的邏輯?
$("#foo").on("click", function(){
if($(this).attr("data-clicked") == "no"){
alert("turn on");
$(this).attr("data-clicked", "yes")
}
if($(this).attr("data-clicked") == "yes"){
alert("turn off")
$(this).attr("data-clicked", "no")
}
})
jQuery的'data'不改變屬性,它改變了jQuery的內部存儲。如果這只是創建切換功能,那很好,如果您需要更改實際屬性,則必須使用'attr'。你的代碼的問題是你正在檢查點擊處理程序之外的數據,它需要在每次點擊發生時檢查它。 – adeneo 2015-02-07 10:44:14
我想改變屬性,因爲我想分配值(關閉開關)元素更容易用.attr()或data()來做到這一點?我希望能夠通過我的代碼將條件聲明用於這些信息。感謝您的支持 – 2015-02-07 10:48:54
即時檢查點擊處理程序中的數據,但我猜數據不會在點擊處理程序 – 2015-02-07 10:55:09