Javascript 防止单击操作

Javascript 防止单击操作,javascript,jquery,popup,bpopup,Javascript,Jquery,Popup,Bpopup,我正在使用用于jQuery的bPopup插件,除了单击之外,一切正常。当我点击一个链接时,它会打开一个弹出窗口。然后,当我点击另一个链接时,它会再次打开一个弹出窗口 所以我看到e.preventdefault不起作用。如何使其工作,以防止点击其他链接 // Semicolon (;) to ensure closing of earlier scripting // Encapsulation // $ is assigned to jQuery ;(function($) { // DOM

我正在使用用于jQuery的bPopup插件,除了单击之外,一切正常。当我点击一个链接时,它会打开一个弹出窗口。然后,当我点击另一个链接时,它会再次打开一个弹出窗口

所以我看到e.preventdefault不起作用。如何使其工作,以防止点击其他链接

// 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()
    $('#PopUpItUp').live('click', function(e) {

    // Prevents the default action to be triggered. 
    e.preventDefault();

    // Triggering bPopup when click event is fired
    $('#popup').bPopup({follow: [false, false], position: [310, 25]});

        });

    });
})(jQuery);    
preventDefault()
方法不会验证弹出窗口是否已打开!它只是防止
元素的默认操作

不推荐使用Live方法

我想你需要这个:

$(function() {

    var opened = false;

    $('#PopUpItUp').click(function(e) {

      // Prevents the default action to be triggered. 
      e.preventDefault();

      if(!opened) {
        // Triggering bPopup when click event is fired
        $('#popup').bPopup({follow: [false, false], position: [310, 25]});
        opened = true;
      }
    });
})(jQuery);

我不知道您为什么选择使用
.live()
方法。。您只需使用
。click()
方法,因为您不能有超过一个具有
#PopItUp
id的元素,首先您必须了解e.preventDefault();它仅阻止默认操作,如超链接、表单提交操作

以下是您想要的工作示例


谢谢大家的帮助。但我在Fiddle中看到代码是有效的(Jigar Patel),但在我的index.php中它不起作用……所以我启动了firebug并看到错误引用error e.PreventDefault()。e没有定义。因此,在其他没有PopUpItUp id的链接上,会触发bpopup窗口,下面是firebug中断并显示错误的代码:

function ShowIMDBInfo(id)
{
$.ajax({
url: 'http://myurladdress/external.php?id='+id,
success: function(data) {
$('#popup').html('<div>' + data + '</div>');
},
error: function(request, error, errormessage) {
$("#messages").html(error + '\n' + errormessage);
}
});
e.preventdefault();
return false;
};   
函数ShowIMDBInfo(id)
{
$.ajax({
网址:'http://myurladdress/external.php?id=“+id,
成功:功能(数据){
$('#popup').html(''+数据+'');
},
错误:函数(请求、错误、错误消息){
$(“#消息”).html(错误+'\n'+errormessage);
}
});
e、 预防默认值();
返回false;
};   

您想要什么?一次一个弹出窗口?模式?我不知道bPopup,但我知道的大多数弹出库都提供了某种类型的
modal
选项,在对话框打开时阻止对站点的任何输入。也许你也能找到类似的东西?你是说,当你点击“#PopUpItUp”链接之外的任何其他链接时,弹出窗口就会出现?它现在在charm等代码上面工作:))谢谢大家的帮助…问题是我在define id=“popup”时没有关闭,所以当我点击时,包含href元素的整个元素都会被触发,修复了这个问题…这是我的错误。。