触发器('click')与实际用户点击的行为不同

时间:2012-07-16 20:42:39

标签: javascript jquery forms events click

我正在尝试让网页在通过网址传递字符串时执行特定按钮的点击。

...url?key=button1

HTML:

 <button type="submit" id="button1" value="*some other url*" >Button 1</button

然后我有以下jquery:

var locate = window.location;
locate = locate.toString();
var text = locate;

$(function(){
 var temp = "?key="; 
        if (text.indexOf(temp) !== -1)
        {
        var position = text.indexOf(temp) + temp.length;
        text = text.substring (position); 
       $(window).load(function ()
            { 
                if (text == 'button1')
                {
                    $("#button1").trigger('click');
                } 
            })
        }             
   }) 

然后在我的jquery中我有以下代码

$("#button1").live("click", function() {

     $('#userform').attr('target', '_blank'); 
     $('#userform').delay(3000).queue(function()
           {
            $('#userform').attr('target', '').dequeue();
           });
});

然后我正在做的事情超出了我的控制范围。

出于隐私原因,我只能说该页面执行提交,然后在提交按钮的值中重定向到指定页面。

现在页面的行为与你想象的一样。

用户点击按钮,将目标设置为'_blank',表单提交一些数据并重定向到按钮值中的url。单击该按钮将打开一个新选项卡。

然而,我的问题是,在网页上加载了网址中的信息时,点按按钮即可执行,但不会像往常一样在新标签页中打开,而是在新窗口中打开。

是否有任何理由为什么要执行.trigger('click')甚至$(“#button1”)。click()在新窗口中打开,而不是当用户单击按钮时它会打开新标签?

2 个答案:

答案 0 :(得分:1)

您需要使用单击来阻止您在绑定到button1的函数中的按钮的默认行为(即提交到指定的URL)。)

答案 1 :(得分:0)

尝试在元素本身上调用.click()方法(即,不是jQuery对象):

var btn = $("#button1");
if (text == 'button1' && btn.length)
{
    btn[0].click();
}