2016-06-28 4 views
0
<a href="javascript:" id="highLowRating" tabindex="0"> 
<a href="javascript:" id="lowHighRating" tabindex="1"> 
$('#lowHighRating').click(function(){ 
    // interchange with highLowRating" and if already then do nothing. 
}); 
$('#highLowRating').click(function(){ 
    // interchange with lowHighRating" and if already then do nothing. 
}); 

Ich brauche die Positionen der Links zu vertauschen, wenn ich einen von ihnen klicken und wenn sie bereits auf ihrer entsprechenden Position dann nichts tun, ich versuchte, die .toggle() aber es ist immer die Position verändert wird, Uhr wenig verwirrt hier.wie kann ich zwei elemente in html über js oder jquery auf einen von ihnen austauschen?

Antwort

0

Sie können nach/vor einem anderen Element insertAfter() und insertBefore() zum Einfügen Element verwenden.

$("#highLowRating, #lowHighRating").click(function(){ 
 
    var index = $(this).index() - 1; 
 
    if (index != $(this).attr("tabindex")){ 
 
     if (index == 0) 
 
      $(this).insertAfter($(this).siblings("a")); 
 
     else 
 
      $(this).insertBefore($(this).siblings("a")); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="javascript:" id="lowHighRating" tabindex="1">B</a> 
 
<a href="javascript:" id="highLowRating" tabindex="0">A</a>

+0

es tut nichts, das' a' bleibt, wo es am Anfang war. –

+0

Was bedeutet "es tut nichts"? Ich arbeite schnippisch. – Mohammad

+0

Es wird immer das 'a' positioniert, egal ob ich auf bereits repositioniertes Objekt klicke. Wenn "A" oben ist, dann klickt man auf "A" bleibt dort. Wenn ich auf "B" klicke, dann wird A durch B und B durch A ersetzt, dann wenn ich auf "B" klicke, dann nichts tun, müssen wir erfassen nur zweiter Link jedes Mal –

0

HTML

<input type="button" value="click" /> 
<p class="one">one</p> 
<p class="two">two</p> 

Javascript

$.fn.swap = function (elem) { 
    elem = elem.jquery ? elem : $(elem); 
    return this.each(function() { 
     $(document.createTextNode('')).insertBefore(this).before(elem.before(this)).remove(); 
    }); 
}; 

$('.one').on('click', function() { 
    alert(true); 
}); 

$('input').click(function() { 
    $('.one').swap('.two'); 
}); 

Demo

+0

Notwendigkeit, auf dem 'a' klicken, aber nicht die äußere Taste –

Verwandte Themen