jquery函数在两次单击后首次运行
当我加载页面selText()时,只需单击两次即可运行,然后它就可以正常工作,但如果刷新页面,我需要再次单击两次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
<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();
});
});