2013-03-26 82 views
1

我有这个工作jQuery +内嵌JavaScript,它会导致与现有的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> 
&lta class="active" href="#" onClick="goto('#kr', this); return false">
&lta class="active" href="#" onClick="goto('#en', this); return false">

(我试图解决冲突,你可以看到,但我相信,冲突起因于内嵌的JavaScript。)

我如何转换这种内嵌的JavaScript?谢谢。

+1

你是什么意思,当你说它与现有的jQuery存在冲突? – Raghu 2013-03-26 18:44:36

回答

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

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); 
+0

您可以删除外部函数,只需执行'jQuery(function($){// DOM ready')。'jQuery'函数将被传递给'.ready()'回调的''''参数,给 – 2013-03-26 18:51:29

+0

@amnotiam肯定感谢您的提示! – 2013-03-26 18:54:19

+0

@amnotiam但我会离开它就像它是因为你可以把其他东西像'$(window).load(function(){'和其他东西 - 总是在第一个函数(remapper)周边内 – 2013-03-26 18:56:19

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