我遇到了一个小jQuery问题。我有一个从php循环生成的链接集(超过50个)。当用户单击链接时,将调用jQuery load事件,并将php / mysql脚本(在下面的示例中称为page.php)加载到页面上的空div中。
我希望将类(“.classy”)从<中删除。 a>标记并替换为另一个类(“。newclass”)。这样信息只在第一次点击时加载。
html:
<a class='classy' name='marvin'>Click to toggle info</a>
<div id='marvin'></div>
jQuery:
$(document).ready(function(){
$(".classy").click(function(){
var foo = $(this).attr("name");
$("#"+foo).load("page.php?id="+foo).slideToggle('fast');
$(this).removeClass('classy');
$(this).addClass('newclass');
return false;
});
});
谢谢!
答案 0 :(得分:2)
仅仅因为您更改了类并不意味着从链接中删除了click
事件处理程序。您需要手动解除绑定,或者只需添加if
语句来检查链接所在的类。
或使用live
函数绑定click
事件。
答案 1 :(得分:1)
不是正面的 - 但你可能需要这样做(使用$ .live()):
$(document).ready(function(){
$(".classy").live('click', function(){
var foo = $(this).attr("name");
$("#"+foo).load("page.php?id="+foo).slideToggle('fast');
$(this).removeClass('classy').addClass('newclass');
return false;
});
});