2

您好,我看过类似的帖子,但没有人回答我想要完成的事情我在这里做了一个示例 http://jsfiddle.net/edgardo400/R6rVJ/

我基本上想要的是,当在父项中发生单击时,您会获取子项的 id 并将其存储在一个变量中,这样我就可以将变量 currentID 传递给下面的代码,否则我将不得不为每个 id 复制此代码 9 次盒子 1 到盒子 9

 jQuery(currentID).delegate("a", "hover", function(event){

        var $img = jQuery(this).parent("li").find('img');
        var image = jQuery(this).attr('data-img');
         jQuery('.defaultimg').stop(true, true).fadeOut();
        if( event.type === 'mouseenter' ) {

            if($img.length){
                $img.show();

            }else{
                jQuery(this).parent("li").append('<img id="theImg" src="' + image + '" />');
            }

        }else{
            if($img){
              $img.hide();  
            }
             jQuery('.defaultimg').stop(true, true).fadeIn();
        }
    });
});
4

3 回答 3

7
$('#boxes').on('click', function(e) {
    var currentID = e.target.id;
    console.log(currentID);

......rest of code
于 2012-04-22T17:06:48.013 回答
1

如果您只想让您的代码工作并在您的控制台上显示框名称,您可能应该设置

jQuery('#boxes').bind('click', function(event) {

     var currentID = jQuery(event.srcElement).attr('id');

     /* rest of your code */
});

你可能想做一些更简单的事情

jQuery('#boxes').children().bind('click', function() {

   jQuery(this).delegate... 

});

虽然我不确定你为什么要这样做......

修复http://jsfiddle.net/nxTDA/

于 2012-04-22T16:17:59.273 回答
1

在javascript中它将是:

var a = document.getElementById('#boxes');
a.onclick = function(e){
    console.log(e.target.id);
}
于 2014-02-21T11:44:26.900 回答