Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
jquery函数在两次单击后首次运行_Jquery_Function_Select_Click_Selectall - Fatal编程技术网

jquery函数在两次单击后首次运行

jquery函数在两次单击后首次运行,jquery,function,select,click,selectall,Jquery,Function,Select,Click,Selectall,当我加载页面selText()时,只需单击两次即可运行,然后它就可以正常工作,但如果刷新页面,我需要再次单击两次 <a href="javascript: selText();" class="select">click</a> <input type="text" value="value" /> <a href="javascript: selText();" class="select">click</a> <input

当我加载页面selText()时,只需单击两次即可运行,然后它就可以正常工作,但如果刷新页面,我需要再次单击两次

<a href="javascript: selText();" class="select">click</a>
<input type="text"  value="value" />

<a href="javascript: selText();" class="select">click</a>
<input type='text'  value='value' />

<a href="javascript: selText();" class="select">click</a>
<input type="text"  value="value" />




function selText() {
        $(".select").click(function () { $(this).nextUntil("a").select(); });
    }

函数selText(){
$(“.select”)。单击(函数(){$(this.nextUntil(“a”).select();});
}
将代码放入

$(document).ready(function() {
    $(".select").click(function (e) {
        e.preventDefault();
        $(this).nextUntil("a").select();
    });
});

您正在注册单击处理程序,该处理程序在单击处理程序上调用
select
方法,因此当第一次单击发生时,没有处理程序来选择元素,但它只注册一个将进行选择的处理程序。当发生第二次单击时,单击事件将有两个处理程序,一个是
selText
,另一个是由第一个注册的处理程序。但是,当您执行第三次单击时,
select()
代码将被调用两次

因此,在您的情况下,解决方案是删除内联处理程序并在dom就绪回调上注册一个click处理程序,如下所示

<a href="#" class="select">click</a>
<input type="text"  value="value" />

<a href="#" class="select">click</a>
<input type='text'  value='value' />

<a href="#" class="select">click</a>
<input type="text"  value="value" />

这是因为当你添加

function selText() {
    $(".select").click(function () { $(this).nextUntil("a").select(); });
}
然后单击锚链接,第一次发生的是函数将一个单击事件绑定到“.select”元素。这就是为什么第一次点击没有任何作用的原因。但之后的点击将按预期工作。上述代码的不利影响是,您正在将click事件绑定到实际执行相同操作的多个函数(绑定的函数数等于您单击锚标记的次数)

答案是,你需要

$(".select").click(function () { $(this).nextUntil("a").select(); });

$(document).ready(function(){
..// your code here
});

我不知道为什么,但在我的项目中的一些视图中,上面的代码不起作用,我必须执行以下操作

$(document).ready(function () {
    $(document).on('click', '.tabl-red', function (e) {
        e.preventDefault();
        $(this).nextUntil("a").select();
    });
});

也许它能帮助别人

我很乐意。如果你的问题得到了回答,你可以对答案投赞成票或将其标记为答案:-)算了,请投赞成票并/或将其标记为答案(如果对你有帮助)。
$(document).ready(function () {
    $(document).on('click', '.tabl-red', function (e) {
        e.preventDefault();
        $(this).nextUntil("a").select();
    });
});