5

我试图.loader在文档准备好时调用第一个孩子的点击,但没有成功:

html:

<a class="loader" data-target="david-boy" title="Danny Boy-Rivera">
    <span class="img"><span class="play"></span><img src="img/gallery-image1.jpg" alt="" /></span>
    <h2>Danny Boy</h2>
</a>

jQuery:

//Does not work
$('a.loader:first-child').bind('click');
$('a.loader:first-child').trigger('click');
$('a.loader:first-child').click();
//Works
$('a.loader:first-child').css("background", "red");

任何想法为什么?

更新

处理程序:

$('.loader').click(function(){
    var name=$(this).data("target");
    callVideo(name);
});

更新2

所以问题是我:first-child在处理程序之前声明了这个动作。我改变了他们的位置,一切都好

4

2 回答 2

7

您是否在启动触发的“点击”之前定义了处理程序?

这是您的小提琴中完全相同的代码,除了我将处理程序放在触发器之前

$(document).ready(function(){
    $('.loader').click(function(){
       alert($(this).data("target")); 
    });
    $('.loader:first-child').click();
    $('.loader:first-child').css("background", "red");
});​

这将弹出您正在寻找的警报

于 2012-05-10T14:47:05.453 回答
5

你需要有一个点击事件的处理程序......

$('a.loader:first-child').click(function(){
    alert('clicked');
});

$('a.loader:first-child').click();

更新:

您的处理程序可能在元素准备好之前已附加。

$(function(){
    $('.loader').click(function(){
        var name=$(this).data("target");
            callVideo(name);
    });
});
于 2012-05-10T14:40:55.370 回答