Javascript 如何返回指向它的href链接';使用e.preventDefault()后的默认行为;?

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 //

我更新了代码并重新表述了我的问题:

我试图创造以下条件。单击具有空href属性(例如href=“”)的链接时,将启动模式,并阻止该链接的默认行为

但是,当href属性包含一个值(href=“www.something.com”)时,我希望该链接使用其默认行为正常工作

由于某种原因,我的代码无法工作。感谢您的帮助

      // 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。谢谢你