4
4

8 回答 8

3

试试这个,

$('a.popup').on('click',function(){
  alert($(this).parent().parent().attr('id')); // to check whether it is firing....
});
于 2012-12-13T11:55:36.590 回答
2
于 2012-12-13T12:04:53.537 回答
1

采用this

$(document).ready(function() {
    $('a.popup').on('click',function(){
        var id = $(this).parent().parent().attr('id');
        id = id.substring(5);
        alert(id);
   });
});
于 2012-12-13T12:31:43.433 回答
0

我认为您想将点击回调绑定到您的链接。您可能还想阻止默认行为,否则您的页面将重新加载。

$(".popup").click(function(){
    var id = $(this).parent().parent().attr('id')[5];
    alert(id);
});​

parent此外,有效地使用类可以在它们失控之前消除大部分调用。例如。

<!-- Make the head div belong to class "head" -->
<div id="block1" class="head">
  <div class="slideshow">
    <a class="popup" href="#imgform">

$(".popup").click(function(){
    // If you click the first link, you'll get "block1" in the alert.
    var id = $(this).parents(".head").attr('id');
    alert(id);
});​
于 2012-12-13T11:49:26.600 回答
0

在您的事件处理程序中,您需要使用实际单击的事件。

$('a.popup').click(function() {
  var $id = $(this).parent().parent().attr('id');
  ...
});

请注意,从 jQuery 1.7 开始,不推荐使用 .live() 方法。使用 .on() 或 .click() 附加事件处理程序。

于 2012-12-13T11:49:53.730 回答
0

采用:

$(document).ready(function() {
    var $popup = $('a.popup');
    $popup.live('click',function(){ 
        var element = $(this);
        var id = element.closest('[id^="block"]').attr('id');
        id = id.substring(5);
        alert(id);
        $.get('index.php?o='+id, function(data) {
            element.fancybox({
                //do stuff
            });
        });
    });
});

如果您使用的是 jQuery 1.7 +,请使用:

    $(document).on('click', 'a.popup' ,function(){ 
        //do Stuff
    });
于 2012-12-13T11:55:57.493 回答
0

我遇到了类似的问题,我无法点击我尝试过()它比live()更好。

查看此链接以获取更多信息http://api.jquery.com/on/在此页面中查看页面末尾的最后三个示例,您可能会得到更好的解决方案。

于 2012-12-13T12:23:52.807 回答
0

您可以使用

$(document).on("click", "$popup", function() {
var id = $popup.parent().parent().attr('id');
        id = id.substring(5);
        alert(id);
        $.get('index.php?o='+id, function(data) {
            $popup.fancybox({
                //do stuff
            });

});
于 2013-09-05T07:47:09.430 回答