Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery操作触发一次,但不会再次触发_Javascript_Jquery - Fatal编程技术网

Javascript jquery操作触发一次,但不会再次触发

Javascript jquery操作触发一次,但不会再次触发,javascript,jquery,Javascript,Jquery,请原谅代码过于庞大,我们会在适当的时候整理它 一切似乎都在运行,然而,当你在链接内容已经“激活”后单击链接时,什么都没有发生 我相信这很简单,但我看不出来 编辑:下面的代码现在可以在FF和Chrome中使用,但在IE8中不起作用。有什么想法吗 $(function(){ //initialize active link to not have a link on ready. var linkId = $('#pricing_body div.ac

请原谅代码过于庞大,我们会在适当的时候整理它

一切似乎都在运行,然而,当你在链接内容已经“激活”后单击链接时,什么都没有发生

我相信这很简单,但我看不出来

编辑:下面的代码现在可以在FF和Chrome中使用,但在IE8中不起作用。有什么想法吗

$(function(){
            //initialize active link to not have a link on ready.
            var linkId = $('#pricing_body div.active').attr('id');
            var activeLink = $('#pricing_nav ul li#'+linkId+' a'); //just the link itself.
            activeLink.parent().addClass('activeSection');
            //var activeLinkContents = activeLink.parent().html(); //the link contained in the the list item and it's contents.
            //alert(activeLinkContents);
            var linkContents = activeLink.html(); //text content of the link.
            activeLink.parent().html(linkContents);

            //when link is clicked, store it's text for assignment after <a> is stripped out.
            $('#pricing_nav ul li a').live('click',function(){
                var clickedId = $(this).parent().attr('id');
                var clickedLinkContents = $(this).html();
                $(this).parent().addClass('activeSection');
                $(this).parent().html(clickedLinkContents); //replaces <a><span>name</span></a> with just the span and text.

                //fadeOut active div and give it inactive class. get list item with same id as div we are fading out.
                $('#pricing_body div.active').fadeOut('500',function(){
                    $(this).removeClass('active').addClass('inactive');
                    var divId = $(this).attr('id');
                    var sisterLink = $('#pricing_nav ul li#'+divId);
                    sisterLink.removeClass('activeSection');
                    sisterLink.html('<a href="#">'+sisterLink.html()+'</a>'); //put link in between <li>.

                    //fadeIn the div with id of the link that has been clicked.
                    $('#pricing_body div#'+clickedId).fadeIn('500',function(){
                        $(this).addClass('active').removeClass('inactive');
                        var newActive = $('#pricing_nav ul li#'+clickedId);
                    });
                });
            });
        });
$(函数(){
//初始化活动链接以使链接不处于就绪状态。
var linkId=$('#定价_bodydiv.active').attr('id');
var-activeLink=$('#pricing#nav ul li'+linkId+'a');//仅链接本身。
activeLink.parent().addClass('activeSection');
//var activeLinkContents=activeLink.parent().html();//列表项中包含的链接及其内容。
//警报(activeLinkContents);
var linkContents=activeLink.html();//链接的文本内容。
activeLink.parent().html(linkContents);
//单击链接时,将其文本存储在“');//将链接置于
  • 之间。 //fadeIn已单击链接id为的div。 $('pricing#u body div'+clickedId).fadeIn('500',function(){ $(this).addClass('active').removeClass('inactive'); var newActive=$(“#定价#ul li”+点击EDID); }); }); }); });
  • 使用
    live
    方法将事件附加到元素。是文档。

    使用
    live
    方法将事件附加到元素。是文档。

    请尝试:

    $('#pricing_nav ul li a').live('click', function(){
    
    ---------
    ---------
    ---------
    
    });
    
    编辑:

    $('#pricing_nav ul li a').live('click', function(){
    
    ---------
    ---------
    ---------
    
    });
    
    作为对评论的答复

    .live()方法能够影响 尚未添加的元素 通过使用事件 委托:绑定到 祖先元素负责 在其上触发的事件 后代

    .bind()方法是主要的 将行为附加到对象的方法 文件。所有JavaScript事件类型, 例如焦点、鼠标悬停和调整大小, 允许使用eventType

    试试看:

    $('#pricing_nav ul li a').live('click', function(){
    
    ---------
    ---------
    ---------
    
    });
    
    编辑:

    $('#pricing_nav ul li a').live('click', function(){
    
    ---------
    ---------
    ---------
    
    });
    
    作为对评论的答复

    .live()方法能够影响 尚未添加的元素 通过使用事件 委托:绑定到 祖先元素负责 在其上触发的事件 后代

    .bind()方法是主要的 将行为附加到对象的方法 文件。所有JavaScript事件类型, 例如焦点、鼠标悬停和调整大小, 允许使用eventType


    这是其他问题的重复,基本上你需要在重新创建元素或使用后重新绑定。live()非常感谢。我选择了.live()。我的想法对吗。live()为元素的所有未来版本绑定事件,但.bind()只在页面加载时执行一次,实际上与.click()相同?这是其他问题的重复,基本上在重新创建元素或使用后需要重新绑定。live()非常感谢。我选择了.live()。我的想法对吗?live()为元素的所有未来版本绑定事件,但是.bind()只在页面加载时执行一次,实际上与.click()相同?谢谢。我以前用过。live而不是。单击,现在它可以工作了。我也测试了。绑定,但这不起作用。live()将事件绑定到元素(即使在重新创建事件时)与bind()只分配一次事件有什么区别吗?谢谢。我以前用过。live而不是。单击,现在它可以工作了。我也测试了。绑定,但这不起作用。live()将事件绑定到元素(即使在重新创建事件时)和bind()只分配一次事件的区别是什么?