我写了一个jQuery(函数)来执行某个div-class(A)的动作。当我们点击该div类中的超链接时,这些链接将在另一个div-id(B)中打开。在这里,我的问题是:我想在第一个div类(A)中禁用一个链接的函数。
例如,如果我们单击链接1时div类(A)中有两个超链接(假设为1和2),它应该执行jQuery。当我们单击链接2时,不应该为该链接执行jquery。 注意:两个链接(link1和link2都在同一个div-class(A)中)。
我的jQuery函数是
$('.div-class(A) a').click(function(){
var url = $(this).attr('href');
var height = $('#div-id(B)').height();
var width = $('#div-id(B)').width();
$('#div-id(B)').replaceWith( "'<object data="+url+" width="+width+" height="+height+"/>'" );
return false;
});
我该如何处理这个问题。我需要添加禁用功能吗?显然,我不应该使用.remove() - &gt;完全删除链接。
任何建议???
答案 0 :(得分:2)
如果您使用.on()
来绑定您的活动,那么您可以将其与.off()
取消绑定,如下所示:
更新以反映OP的实际需求(我认为)
$('.div-class(A) a').on('click', function(){
var url = $(this).attr('href');
var height = $('#div-id(B)').height();
var width = $('#div-id(B)').width();
$('#div-id(B)').replaceWith( "'<object data="+url+" width="+width+" height="+height+"/>'" );
return false;
});
// This will unbind the click action for a tags inside a div with id #sub-b
$('#sub-b a').off('click');
有一点需要注意,如果你使用事件委托,那么就不能以这种方式对内部div使用off。
答案 1 :(得分:0)
尝试
:不是选择器
$('.div-class(A) a:not(disabledLinkSelctor)').click(function(){
var url = $(this).attr('href');
var height = $('#div-id(B)').height();
var width = $('#div-id(B)').width();
$('#div-id(B)').replaceWith( "'<object data="+url+" width="+width+" height="+height+"/>'" );
return false;
});
答案 2 :(得分:0)
如果你想在第一次点击它时删除该事件,那么你可以解除绑定:
$('.div-class(A) a').click(function(){
var url = $(this).attr('href');
var height = $('#div-id(B)').height();
var width = $('#div-id(B)').width();
$('#div-id(B)').replaceWith( "'<object data="+url+" width="+width+" height="+height+"/>'" );
$(this).off("click");
return false;
});
有关关闭的详细信息:http://api.jquery.com/off/
如果您只想让div中的某些链接可点击,只需添加一个合适的类并按其过滤:
$('.div-class(A) a.opensUpDivB').click(function(){
var url = $(this).attr('href');
var height = $('#div-id(B)').height();
var width = $('#div-id(B)').width();
$('#div-id(B)').replaceWith( "'<object data="+url+" width="+width+" height="+height+"/>'" );
return false;
});