JavaScript文本交换

JavaScript文本交换,javascript,html,Javascript,Html,我需要帮助创建一个可行的文本交换程序。 我的项目需要操纵固定和动态的站点地图,以吸引大多数用户,并减少麻烦。 一个元素被放置在页面的右上角,固定到位,当按下时,将改变其文本并将显示模式切换为动态或固定,具体取决于最后按下的是哪一个 这就是我一直坚持的部分。解释哪种模式刚刚被激活对我来说是个麻烦:我的尝试都是徒劳的 var parent = document.getElementById("changeInteractiveness") parent.onclick = function(){te

我需要帮助创建一个可行的文本交换程序。
我的项目需要操纵固定和动态的站点地图,以吸引大多数用户,并减少麻烦。
一个
元素被放置在页面的右上角,固定到位,当按下时,将改变其文本并将显示模式切换为动态或固定,具体取决于最后按下的是哪一个

这就是我一直坚持的部分。解释哪种模式刚刚被激活对我来说是个麻烦:我的尝试都是徒劳的

var parent = document.getElementById("changeInteractiveness")
parent.onclick = function(){textDynamic()}
function textDynamic() {
    parent.innerHTML = "<b>Change Interactiveness</b> to Fixed"
    parent.onclick = "textFixed()"
    // Call Interactive-Mode : Coming Soon
}
function textFixed() {
    parent.innerHTML = "<b>Change Interactiveness</b> to Dynamic"
    parent.onclick = "textDynamic()"
    // Call back Fixed-Mode : Coming Soon
}
从理论上讲,它应该能正常工作。我也在jQuery中尝试了上述方法

var target = $("#changeInteractiveness")
target.on("click", function(event){
    target.html("<b>Change Interactiveness</b> ")
    target.remove(" to Fixed!")
    target.append(" to Dynamic!")
    target.on("dblclick", function(event){
        target.remove(" to Dynamic!")
        target.append(" to Fixed!")
    })
})
var target=$(“#变化互动性”)
target.on(“单击”),函数(事件){
html(“更改交互性”)
目标。删除(“修复!”)
append(“to Dynamic!”)
on(“dblclick”,函数(事件){
删除(“到动态!”)
append(“to Fixed!”)
})
})
单击
dblclick
是内置标识符,用于分隔和最小化代码长度。它包括不必为用户点击按钮的次数设置数字计数器,进而根据变量是奇数还是偶数切换动态或固定模式…
事实上,仔细想想,如果它确实有效,我可能会使用它(尽管从我自己的例子来看,似乎您必须单击三次*两次*才能再次访问固定模式!)


协助是可选的-我确信我可以创建一个解决方案。但我很感激你的帮助

应该将函数引用直接分配给
onclick
属性 (不作为字符串)

var parent=document.getElementById(“变更交互性”)
parent.onclick=textDynamic;
函数textDynamic(){
parent.innerHTML=“将交互更改为固定”
parent.onclick=textfix;
//电话互动模式:即将推出
}
函数textFixed(){
parent.innerHTML=“将交互更改为动态”
parent.onclick=textDynamic;
//回拨固定模式:即将到来
}

将交互更改为动态

我仍然在控制台中收到一个类型错误,导致未显示完整结果。也许我的
有问题?我已将“onclick”属性指定为“textDynamic();”函数…我现在正在考虑使用JQuery,因为我在这方面比较有经验。。。天哪,我想做的就是使用传统的方法——似乎我们再也不能这样做了:(@ghostwarker13如果你注意到我的代码中我在分配处理程序时没有在末尾添加
()
。这样你就给函数分配了一个引用。用括号你实际上执行了函数并分配了结果(在本例中这不是我们想要的)我仍然收到类型错误…显然,
onclick
需要一个属性。但是我已经分配了一个属性,即函数调用,那么现在怎么办?Chrome是否再次试图阻止我?…:(@ghostwarker13我的答案中的示例代码有效吗(单击“运行代码片段”)?如果它确实有效,那么发布您当前的代码,以便我可以看一看(或者现场演示更好)
var target = $("#changeInteractiveness")
target.on("click", function(event){
    target.html("<b>Change Interactiveness</b> ")
    target.remove(" to Fixed!")
    target.append(" to Dynamic!")
    target.on("dblclick", function(event){
        target.remove(" to Dynamic!")
        target.append(" to Fixed!")
    })
})