1

私はこの作業中のjQuery +インラインjavascriptを持っているため、既存のjQueryと競合します。

<script>
var jq=jQuery.noConflict(); 
function goto(id, t){   
    jq(".contentbox-wrapper").animate({"left": -(jq(id).position().left)}, 600);
    jq('#slide a').removeClass('active');
    jq(t).addClass('active');   
}
</script>
<a class="active" href="#" onClick="goto('#kr', this); return false">
<a class="active" href="#" onClick="goto('#en', this); return false">

(ご覧のとおり、競合を解決しようとしましたが、競合はインラインJavaScriptから発生していると思います。)

このインライン JavaScript を変換するにはどうすればよいですか? ありがとう。

4

3 に答える 3

1

次のようにバインドできます。

<script>
//var jq=jQuery.noConflict();   
function goto1(id, t){   
    ...
    return false; // return false to prevent the link's default action
}

// means once your DOM is ready, and a.active is available to be bound
$(document).ready(function() { 

    // bind all clicks on a.active to the function 'goto1'
    $('a.active').click(goto1);
});
</script>

のような変数名gotoは、後で混乱を招く可能性があります。上記を に変更しましたgoto1

于 2013-03-26T18:44:01.840 に答える
0

インライン JS (HTML に埋め込む) は保守が難しいので、次のことをお勧めします。

HTML:

<div id="parent"> <!-- or any other parent el. -->
    <a href="#">Anchor</a>
</div>

jQuery:

(function($){ // remap $ to jQuery

  $(function(){ // DOM ready

    $('#parent').on('click', 'a', function( ev ){
       ev.preventDefault();
       var krPos = $('#kr').position().left;
       $(".contentbox-wrapper").animate({"left": -krPos }, 600);
       $('#slide a').removeClass('active');
       $(this).addClass('active'); 
    });

  });

})(jQuery);
于 2013-03-26T18:48:45.837 に答える
0
$('.active').on('click', function() {
var $this = $(this);        
var id = $this.attr('href');
$(".contentbox-wrapper").animate({"left": -($(id).position().left)}, 600);
$('#slide a').removeClass('active');
$this.addClass('active');
return false;
 });

huangism が答えてくれました。 https://stackoverflow.com/users/1058134/huangism

于 2013-03-26T19:34:08.300 に答える