Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击链接jquery返回false_Javascript_Jquery - Fatal编程技术网

Javascript 单击链接jquery返回false

Javascript 单击链接jquery返回false,javascript,jquery,Javascript,Jquery,我希望有一个链接,点击时打开弹出窗口,但是如果用户没有启用JS,我希望它在新窗口中打开一个页面 以下这些似乎不起作用 <a id="tac-link" target="_blank" href="tac.html">terms and conditions</a> function popUp(URL) { day = new Date(); id = day.getTime(); eval("page" + id + " = window.open(URL,

我希望有一个链接,点击时打开弹出窗口,但是如果用户没有启用JS,我希望它在新窗口中打开一个页面

以下这些似乎不起作用

<a id="tac-link" target="_blank" href="tac.html">terms and conditions</a>

function popUp(URL) {
day = new Date();
id = day.getTime();
    eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=550,height=600,left = 445,top = 150');");
    }

$('tac-link').click(function() {
    popUp('tac.html');
    return false;
});

为了使此功能更兼容浏览器,需要将事件对象传递给click处理程序,然后调用e.preventDefault

例如:

$( '#button' ).click( function( e ) {
    //... your code...

    e.preventDefault();
    return false;
} );

为了使此功能更兼容浏览器,需要将事件对象传递给click处理程序,然后调用e.preventDefault

例如:

$( '#button' ).click( function( e ) {
    //... your code...

    e.preventDefault();
    return false;
} );

您只是错过了指示它是一个id而不是节点名的提示

$('#tac-link')
PS-我不建议使用eval,为什么不将所有页面变量存储在一个对象中呢

var pages = {};

function popUp( url ) {
    var id = +new Date;
    pages[id] = window.open( url );
}

您只是错过了指示它是一个id而不是节点名的提示

$('#tac-link')
PS-我不建议使用eval,为什么不将所有页面变量存储在一个对象中呢

var pages = {};

function popUp( url ) {
    var id = +new Date;
    pages[id] = window.open( url );
}
还要注意的是,event.preventDefault并不是在所有浏览器中都存在,如果内存可用,它将导致IE7之类的错误。为了避免这种情况,请使用一般的if语句:

if (e.preventDefault) {  
    e.preventDefault();  
}  
e.returnValue = false;
这将防止抛出错误。我相信jQuery也使用这种方法。

还要注意的是,event.preventDefault并不存在于所有浏览器中,如果内存可用,它将导致IE7之类的错误。为了避免这种情况,请使用一般的if语句:

if (e.preventDefault) {  
    e.preventDefault();  
}  
e.returnValue = false;

这将防止抛出错误。我相信jQuery也使用这种方法。

我认为您只是把id选择器弄错了。尝试将$'tac-link'更改为$'tac-link'

另一种方法:

$('a[target="_blank"]').click(function(e) {
    window.open( this.href );
    e.preventDefault();
});

我想你只是把id选择器弄错了。尝试将$'tac-link'更改为$'tac-link'

另一种方法:

$('a[target="_blank"]').click(function(e) {
    window.open( this.href );
    e.preventDefault();
});

jQuery用它自己的对象包装浏览器事件,它公开了一个preventDefault方法,因此开发人员不必担心这个细节。对于这个问题来说,这并不重要,因为returnfalse是jQuery为您调用preventDefault的一个特殊触发器;上次我试着做一个预防默认,它在IEs 6或IEs 7中抛出了一个错误。从那以后,我一直在做整个returnValue交易。jQuery用它自己的对象包装browser事件,它公开了一个preventDefault方法,因此开发人员不必担心这个细节。对于这个问题来说,这并不重要,因为returnfalse是jQuery为您调用preventDefault的一个特殊触发器;上次我试着做一个预防默认,它在IEs 6或IEs 7中抛出了一个错误。从那以后,我一直在做整个returnValue交易。啊哈,我真是个傻瓜!谢谢啊哈,我真是个傻瓜!谢谢