Pat*_*cow 220 jquery triggers click
我有一个链接:
<ul id="titleee" class="gallery">
<li>
<a href="#inline" rel="prettyPhoto">Talent</a>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我试图通过使用以下方法触发它:
$(document).ready(function() {
$('#titleee').find('a').trigger('click');
});
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
我也尝试过: $('#titleee a').trigger('click');
编辑:
我实际上需要触发这里调用的任何东西 <a href="#inline" rel="prettyPhoto">
Kit*_*nde 276
如果你试图在锚点上触发事件,那么你所拥有的代码将会工作我在jsfiddle中使用添加的eventHandler 重新创建你的例子,这样你就可以看到它的工作原理:
$(document).on("click", "a", function(){
$(this).text("It works!");
});
$(document).ready(function(){
$("a").trigger("click");
});
Run Code Online (Sandbox Code Playgroud)
您是否尝试通过单击锚点导致用户导航到网页上的某个点,或者您是否尝试触发绑定到它的事件?也许您实际上没有将click事件成功绑定到事件中?
这个:
$('#titleee').find('a').trigger('click');
Run Code Online (Sandbox Code Playgroud)
相当于:
$('#titleee a').trigger('click');
Run Code Online (Sandbox Code Playgroud)
无需致电查找.:)
Gra*_*iss 193
对不起,但实际上并不需要事件处理程序.您需要的是标签中要点击的另一个元素.
<a id="test1" href="javascript:alert('test1')">TEST1</a>
<a id="test2" href="javascript:alert('test2')"><span>TEST2</span></a>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$('#test1').trigger('click'); // Nothing
$('#test2').find('span').trigger('click'); // Works
$('#test2 span').trigger('click'); // Also Works
Run Code Online (Sandbox Code Playgroud)
这就是你点击的内容,它不是标签,而是标签内的东西.不幸的是,JQuery似乎没有识别裸文本,但它是通过vanilla javascript:
document.getElementById('test1').click(); // Works!
Run Code Online (Sandbox Code Playgroud)
或者通过将jQuery对象作为数组访问
$('#test1')[0].click(); // Works too!!!
Run Code Online (Sandbox Code Playgroud)
Ale*_*lex 13
由于此问题在“触发对<a>元素的点击”方面在Google中排名第一,实际上没有答案提及您的操作方式,因此,您可以这样做:
$('#titleee a')[0].click();
Run Code Online (Sandbox Code Playgroud)
说明:您click在基础html元素上触发,而不是jQuery-object触发。
不客气的Google员工:)
那么你必须先设置点击事件然后你可以触发它并看看会发生什么:
//good habits first let's cache our selector
var $myLink = $('#titleee').find('a');
$myLink.click(function (evt) {
evt.preventDefault();
alert($(this).attr('href'));
});
// now the manual trigger
$myLink.trigger('click');
Run Code Online (Sandbox Code Playgroud)
使用您提供的代码,您不能指望发生任何事情.我第二个@mashappslabs:首先添加一个事件处理程序:
$("selector").click(function() {
console.log("element was clicked"); // or alert("click");
});
Run Code Online (Sandbox Code Playgroud)
然后触发你的活动:
$("selector").click(); //or
$("selector").trigger("click");
Run Code Online (Sandbox Code Playgroud)
你应该在控制台中看到这条消息.
如果您尝试在锚点上触发事件,那么您拥有的代码将起作用.
$(document).ready(function() {
$('a#titleee').trigger('click');
});
Run Code Online (Sandbox Code Playgroud)
要么
$(document).ready(function() {
$('#titleee li a[href="#inline"]').click();
});
Run Code Online (Sandbox Code Playgroud)
要么
$(document).ready(function() {
$('ul#titleee li a[href="#inline"]').click();
});
Run Code Online (Sandbox Code Playgroud)