Javascript 如何返回指向它的href链接';使用e.preventDefault()后的默认行为;?
我更新了代码并重新表述了我的问题: 我试图创造以下条件。单击具有空href属性(例如href=“”)的链接时,将启动模式,并阻止该链接的默认行为 但是,当href属性包含一个值(href=“www.something.com”)时,我希望该链接使用其默认行为正常工作 由于某种原因,我的代码无法工作。感谢您的帮助Javascript 如何返回指向它的href链接';使用e.preventDefault()后的默认行为;?,javascript,jquery,html,Javascript,Jquery,Html,我更新了代码并重新表述了我的问题: 我试图创造以下条件。单击具有空href属性(例如href=“”)的链接时,将启动模式,并阻止该链接的默认行为 但是,当href属性包含一个值(href=“www.something.com”)时,我希望该链接使用其默认行为正常工作 由于某种原因,我的代码无法工作。感谢您的帮助 // Semicolon (;) to ensure closing of earlier scripting // Encapsulation //
// Semicolon (;) to ensure closing of earlier scripting
// Encapsulation
// $ is assigned to jQuery
;(function($) {
// DOM Ready
$(function() {
// Binding a click event
// From jQuery v.1.7.0 use .on() instead of .bind()
$('.launch').bind('click', function(e) {
var attrId = $(this).attr('attrId');
if( $('.launch').attr('href') == '') {
// Prevents the default action to be triggered.
e.preventDefault();
// Triggering bPopup when click event is fired
$('div[attrId="' + attrId+'"]').bPopup({
//position: ['auto', 'auto'], //x, y
appendTo: 'body'
});
} else {
$(this).removeAttribute('attrId');
return true;
}
});
});
})(jQuery);
您的jQuery是。。。大错特错
$('href').attr(“”)
正在从元素
获取空属性。。。你是说:
if( $(this).attr('href') == '')
有几件事:
event
是未定义的,因为您的事件对象只是被称为e
。其次,e.stopPropagation()代码>将不会执行您想要的操作StopperPagation
只是防止父事件触发(例如:单击
也会触发包含
的事件,除非已停止)
试着用替换else语句
return true;
另外,您的jQuery是不正确的(如这里的另一个答案所述)
这个答案也可能有帮助:
祝你好运 是的,我就是这个意思。谢谢,我重新表述了我的问题和代码,所以我仍然需要关于它为什么不起作用的帮助。谢谢你的详细解释。我发现我使用了event而不是e。谢谢你