当我点击链接时,它获得一个名为selected的类,它获得此类之后需要被禁用,直到它丢失“已选中”类但它不会影响其他li
没有类或类“无“
function abrePlanta(idPlanta, desc, image){
h = screen.height;
if ($('li').hasClass("selected")) {
return false;
}
$('#image_preview').html('<img src="../interface_test/images/loading.gif" />');
$('ul li.selected').removeClass('selected').addClass('none');
$(this).closest('li').addClass('selected').removeAttr("disabled");
if(h >= 960){
size = 100;
} else if(h < 960){
size = 90;
}
$.get('2.php', { id_planta: idPlanta, size: size }, function(img){
$('#image_preview').html(img);
});
$('#description').html(desc);
$("#imagezoom").attr("src", "../../images/plantas/sso/" + image);
return false;
}
<li><a href='javascript:void(0);' onclick="return abrePlanta.call(this, 2, "text", "image.jpg")"></a></li>
它不起作用event.preventDefault
我正在使用带有函数的onclick
答案 0 :(得分:3)
很难说没有看到更多的代码,但一目了然
变化:
if($(this).hasclass('selected')){
到
if($(this).hasClass('selected')){
hasClass中的大写C
此外,根据您的修改,您现在正在检查所选类的文档中的所有li
元素:
if ($('li').hasClass("selected")) {
return false;
}
如果我明白你在问什么,你应该只检查点击那个点击的那个。所以做这样的事情(这假设idPlanta是对点击的链接的js引用,这是你正在尝试的,但不能确定,因为你的代码没有在js小提琴编译时我试图建立它),
if ($(idPLanta).parent().hasClass("selected")) {
return false;
}
答案 1 :(得分:1)
这是一个JSFiddle,可以帮助你解决一些问题......
<小时/> 您的问题是您声明函数的地方:
<a href="#" onclick="myfunction()">test2</a>
这将调用函数(返回true / false),但它不会对它做任何事情。要取消事件冒泡,您需要返回函数的结果:
<a href="#" onclick="return myfunction()">test2</a>
这将返回&#34; false&#34;从函数中取消自然点击事件。
答案 2 :(得分:0)
if($(this).hasClass('selected')){
$(this).attr("disabled","disabled");
return false;
}
else {
return true;
}
$('ul li.selected').removeClass('selected').addClass('none');
$(this).closest('li').addClass('selected').removeAttr("disabled");
<li><a href="#" onclick="function()">test</a></li>
<li><a href="#" onclick="function()">test2</a></li>