当前位置: 动力学知识库 > 问答 > 编程问答 >

livequery - Toggle Problem in live event of jquery

问题描述:

I am stuck with this can anyone help me...

here is the html

<tr class="appendvalue">

<td colspan="2">

<asp:DropDownList ID="ddlSource" runat="server"></asp:DropDownList>

<asp:TextBox ID="txtSourceValue" runat="server" CssClass="hide" />

<a href="#" class="t12">add static value</a>

</td>

here is the jquery

$(document).ready(function() {

$('.appendvalue > td > a').live("click", function(e) {

e.preventDefault();

$(this).prev().prev().toggle();

$(this).prev().toggle();

$(this).toggle(function() { $(this).text("select from dropdown"); }, function() { $(this).text("add static value"); });

});

});

after the first click it only toggles' the anchor text not toggling dropdown and textbox..

网友答案:

.toggle() is really a convenience method for click events, so using .toggle() within the click event handler of the same element is going to be problematic. Instead...

$(document).ready(function() {
    $('.appendvalue > td > a').live("click", function(e) {
        e.preventDefault();
        $(this).prevAll().toggle();
        if ($(this).parent().find("input").is(":hidden")) {
            $(this).text("add static value");
        } else {
            $(this).text("select from dropdown");
        }
    });
});
网友答案:

Try this instead:

$(document).ready(function() {
    $('.appendvalue > td > a').live("click", function(e) {
        e.preventDefault();
        var $this = $(this);
        $this.prevAll().toggle();
        $this.toggle(function() { $this.text("select from dropdown"); }, function() { $this.text("add static value"); });
    });
});
分享给朋友:
您可能感兴趣的文章:
随机阅读: