0

Something wrong with the event handler, as on mouse leave the div opens and closes 3 times.

also the radio that is swapped get over layed or offset.

I have tried everything, i think it has something to do with the way i am using the event.preventDefault();

UPDATE__

Menu opening 3x fixed, but the swapped radio in the div still overlaps any ideas?

http://www.apecharmony.co.uk

// RADIO BUTTON
$("input[name='domain_ext']").each(function () {
    $("#domaindropradio1").attr('checked', 'checked');
    var lbl = $(this).parent("label").text();
    if ($(this).prop('checked')) {
        $(this).hide();
        $(this).after("<div class='radioButtonOn'>" + lbl + "</div>");
    } else {
        $(this).hide();
        $(this).after("<div class='radioButtonOff'>" + lbl + "</div>");
    }
});

$("input[type=radio]").change(function () {
    $(this).siblings('.radioButtonOff').add('.radioButtonOn').toggleClass('radioButtonOff radioButtonOn');
});

// RIBBON RADIO DROPBOX
$('div.ribbonBoxarrow').click(function () {
    $('.ribbonBoxarrow li').show('medium');
});
$('.ribbonBoxarrow li').mouseleave(function () {
    $(this).hide('slow');
});
$("input[name='domain_ext']").parent('label').click(function () {
    $('.ribbonBoxarrow li').hide('slow');
    event.preventDefault();
});

//SWAP SECECTED RADIO
$("div.radiogroup2").on("click", ":radio", function () {
    var l = $(this).closest('label');
    var r = $('#radioselected');
    r.removeAttr('id');
    l.before(r.closest('label'));
    $(this).attr('id', 'radioselected');
    l.prependTo('.radiogroup1');
});
4

2 回答 2

1

解决了,使用表格来保存元素是导致问题的原因。如果需要,则必须将单元格作为交换目标。

于 2013-09-08T00:16:09.230 回答
1

回应:

div 打开和关闭 3 次。

您的动画触发的事件超出了您的预期。此外,您preventDefault()并没有阻止其他点击事件触发。

对于您的$("input[name='domain_ext']").parent('label')点击事件,请尝试以下操作:

$("input[name='domain_ext']").parent('label').click(function () {
  $('.ribbonBoxarrow li').mouseleave();
  event.stopImmediatePropagation();
});

对于您的第二个问题:

被交换的无线电也会重叠或偏移。

看起来您正在将单选按钮添加到具有radiogroup1该类的元素之前,但您可能希望您的单选按钮位于嵌套的表格元素中。

于 2013-09-07T19:44:20.740 回答