我有一个javascript函数showHide(shID),这是一个隐藏div或显示内容后点击的功能"阅读更多" 。这是我的小提琴:http://jsfiddle.net/Garfrey/5xf72j4m/8/
正如您所看到的,当用户点击它并显示更多内容时,我只需隐藏一次,意味着当用户返回访问我的页面并且隐藏的内容仍在显示时。所以我需要添加JQuery cookie,但是我写的是错误的并且它不起作用。我是Javascript的新手。有谁知道如何解决它?提前谢谢,我真的需要帮助。
这是我的功能代码:
<script language="javascript" type="text/javascript">
jQuery(document).ready(function(){
if($.cookie("example")=='1') {
function showHide(shID) {
if (document.getElementById(shID+'-show').style.display != 'none') {
document.getElementById(shID+'-show').style.display = 'none';
document.getElementById(shID).style.display = 'block';
}
else {
document.getElementById(shID+'-show').style.display = 'inline';
document.getElementById(shID).style.display = 'none';
}
}
} else {
$.cookie("example", "1");
}
});
</script>
答案 0 :(得分:0)
你不能在jQuery的ready函数中定义一个函数而不做这样的事情
var showHide;
$(function() { // Document ready
showHide = function(sh) {
//Insert function code here
};
});
&#13;
我认为在你的情况下你可能最好在ready函数之外定义函数,然后动态地将它绑定到按钮的onclick处理程序。
我还在按钮中添加了一个data-showhide属性,以便将变量传递给showhide函数onclick。
function showHide() {
var shID = $(this).data("showhide"); // Use lower case only in data
if (document.getElementById(shID + '-show').style.display != 'none') {
document.getElementById(shID + '-show').style.display = 'none';
document.getElementById(shID).style.display = 'block';
} else {
document.getElementById(shID + '-show').style.display = 'inline';
document.getElementById(shID).style.display = 'none';
}
}
$(function() {
$("#example-show").on("click", showHide);
});
&#13;
<a href="#" id="example-show" class="showLink" data-showhide="example">
&#13;
可以在showHide函数中将cookie设置为特定值。然后,就绪处理程序可以查询cookie并确定是否显示或隐藏div。 这个小提琴在行动http://jsfiddle.net/e52hxosb/19/
中显示了这一点