解除绑定后绑定 window Jquery
bind after unbind window Jquery
我正在创建一个包含两个部分的页面,我通过单击标题将内容 .load()
加载到 #container
。
<div id=dogs>[dogs]</div>
<div id=cats>[cats]</div>
<div id=#container></div>
<div class=button_dogs></div>
我的问题
我有一个 right-bottom 固定按钮,我只希望它显示在 #dogs
部分(而不是猫部分),页面默认初始化为 #dog
部分,所以我的代码是这样的
$("#container").load("content.php?s=dogs"); //initial
$("#cats").click(){function(){
$("#container").load("content.php?s=cats"); //after click
$(".button_dogs").hide();
$(window).unbind(".button");
}}
$("#dogs").click(){function(){
$("#container").load("content.php?s=dogs"); //after click
$(".button_dogs").show();
$(window).bind("scroll.button");
}}
这是绑定到window
的固定按钮
$(".button_dogs").hide();
$(window).bind("scroll.button", function(){
if($(this).scrollTop()>50) {
$(".button_dogs").show()
} else {
$(".button_dogs").fadeOut()
}
});
我不知道我做错了什么,当点击#dogs
时它再次绑定了固定按钮功能,但它与before.This的效果不起作用是我有疑问的行(来自#dogs 点击事件)
$(".button_dogs").show();
$(window).bind("scroll.button");
首先,您需要用引号将元素 ID 和 类 括起来。有些浏览器不关心,但其他浏览器关心。另外,不要在容器 ID 前加上散列,除非您使用选择器来查找它...
<div id="dogs">[dogs]</div>
<div id="cats">[cats]</div>
<div id="container"></div>
<div class="button_dogs"></div>
您可以在不删除和 re-adding 事件处理函数的情况下做您想做的事。此方法将使用内容上的数据属性 div 来指定内容类型,因此如果不是狗内容,滚动处理程序可以简单地退出...
// keep a reference to the content div, rather than keep looking it up...
var $container = $("#container");
$("#cats").click(function() {
$container
.load("content.php?s=cats")
.data("content", "cats"); // add a data attribute that has the value "cats"
});
$("#dogs").click(function() {
$container
.load("content.php?s=dogs")
.data("content", "dogs"); // add a data attribute that has the value "dogs"
});
$(".button_dogs").hide();
$(window).bind("scroll.button", function() {
// if the content is not dogs then exit this function...
if ($container.data("content") != "dogs") return;
if ($(this).scrollTop() > 50) {
$(".button_dogs").show();
}
else {
$(".button_dogs").fadeOut();
}
});
$("#dogs").trigger("click"); // click the dogs button to initialize the page
我还添加了变量 $content
,它是对 #content
元素的引用,因此您无需在每次引用它时都查找它。有了ID,重复查找的成本并不高,但养成好习惯。
最后,我添加了代码以在页面加载时单击狗按钮,而不必复制发生这种情况时执行的代码。
我正在创建一个包含两个部分的页面,我通过单击标题将内容 .load()
加载到 #container
。
<div id=dogs>[dogs]</div>
<div id=cats>[cats]</div>
<div id=#container></div>
<div class=button_dogs></div>
我的问题
我有一个 right-bottom 固定按钮,我只希望它显示在 #dogs
部分(而不是猫部分),页面默认初始化为 #dog
部分,所以我的代码是这样的
$("#container").load("content.php?s=dogs"); //initial
$("#cats").click(){function(){
$("#container").load("content.php?s=cats"); //after click
$(".button_dogs").hide();
$(window).unbind(".button");
}}
$("#dogs").click(){function(){
$("#container").load("content.php?s=dogs"); //after click
$(".button_dogs").show();
$(window).bind("scroll.button");
}}
这是绑定到window
$(".button_dogs").hide();
$(window).bind("scroll.button", function(){
if($(this).scrollTop()>50) {
$(".button_dogs").show()
} else {
$(".button_dogs").fadeOut()
}
});
我不知道我做错了什么,当点击#dogs
时它再次绑定了固定按钮功能,但它与before.This的效果不起作用是我有疑问的行(来自#dogs 点击事件)
$(".button_dogs").show();
$(window).bind("scroll.button");
首先,您需要用引号将元素 ID 和 类 括起来。有些浏览器不关心,但其他浏览器关心。另外,不要在容器 ID 前加上散列,除非您使用选择器来查找它...
<div id="dogs">[dogs]</div>
<div id="cats">[cats]</div>
<div id="container"></div>
<div class="button_dogs"></div>
您可以在不删除和 re-adding 事件处理函数的情况下做您想做的事。此方法将使用内容上的数据属性 div 来指定内容类型,因此如果不是狗内容,滚动处理程序可以简单地退出...
// keep a reference to the content div, rather than keep looking it up...
var $container = $("#container");
$("#cats").click(function() {
$container
.load("content.php?s=cats")
.data("content", "cats"); // add a data attribute that has the value "cats"
});
$("#dogs").click(function() {
$container
.load("content.php?s=dogs")
.data("content", "dogs"); // add a data attribute that has the value "dogs"
});
$(".button_dogs").hide();
$(window).bind("scroll.button", function() {
// if the content is not dogs then exit this function...
if ($container.data("content") != "dogs") return;
if ($(this).scrollTop() > 50) {
$(".button_dogs").show();
}
else {
$(".button_dogs").fadeOut();
}
});
$("#dogs").trigger("click"); // click the dogs button to initialize the page
我还添加了变量 $content
,它是对 #content
元素的引用,因此您无需在每次引用它时都查找它。有了ID,重复查找的成本并不高,但养成好习惯。
最后,我添加了代码以在页面加载时单击狗按钮,而不必复制发生这种情况时执行的代码。