使用实时点击在jQuery Accordion Headers中链接

时间:2013-08-25 22:22:53

标签: jquery jquery-ui jquery-ui-accordion

好的,所以这个非常简单,实时点击与点击会影响maccordion在两者中遵循相同行为的能力。正在讨论的行是“ $(”。maccordion h3 input“)。live('click',function(){”。

我想要的只是基本点击按钮maccordion没有做任何事情点击标题中的任何其他地方,它遵循正常的动画。

编辑:只是添加我尝试添加e.stopImmediatePropagation();和e.stopPropagation(); Niether做了什么。此外,我必须使用live,因为插入的代码是动态创建的,并通过ajax引入。

<div class="maccordion">
<h3><input type='button' value='cick'></h3>
<ul>
    <li><a href="/custom.html">Custom</a>
</ul>
<h3><a href="/account">Account</a></h3>
<ul>
    <li><a href="/account/avatar.html">Avatar</a>
</ul>

    

$(function () {

    //Turn the div into an accordion
    $(".maccordion").maccordion({
        header: 'h3'
    });

    //capture the click on the a tag
    $(".maccordion h3 input").live('click', function () {
        return false;
    });
});

1 个答案:

答案 0 :(得分:0)

DEMO

.live()更改为.on()

$(function () {

    //Turn the div into an accordion
    $(".maccordion").accordion({
        header: 'h3'
    });

    //capture the click on the a tag
    $(".maccordion h3 input").on('click', function () {
        return false;
    });
});

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版jQuery的用户应优先使用.delegate() .live()

此方法提供了将委托事件处理程序附加到页面的文档元素的方法,这可以在将内容动态添加到页面时简化事件处理程序的使用。有关详细信息,请参阅.on()方法中有关直接事件与委派事件的讨论。

根据其后继方法重写.live()方法很简单;这些是用于所有三种事件附件方法的等效调用的模板:

$(selector).live(events, data, handler);                // jQuery 1.3+
$(document).delegate(selector, events, data, handler);  // jQuery 1.4.3+
$(document).on(events, selector, data, handler);        // jQuery 1.7+