2016-08-05 6 views
-1

어떻게 내가 2 자바 스크립트 중 하나가 작동하지만 둘째 하나는 충돌을 해결할 수 있지만 그들을 분리하면 그들이 잘 작동합니다. 충돌은 같은 페이지에있을 때만 발생합니다. 항상 내가 먼저 넣은 것이 내가 먼저 넣은 것이 아닙니다. 나는 모든 것을 보았다하지만 난 여기에 대답은 내 스크립트 내가2 javascript 사이의 충돌

<body onload="dothis();dothat()"> 

function dothis(){ 
 
var z = 1; //value to make div overlappable 
 

 
$('#addText').click(function (e) { 
 
    /** Make div draggable **/ 
 
    $('<div />', { 
 
     class: 'ui-widget-content', 
 
     appendTo: '.container4', 
 
     draggable: { 
 
      containment: 'parent', 
 
      start: function(event, ui) { 
 
       $(this).css('z-index', ++z); 
 
      } 
 
     } 
 
    }); 
 
}); 
 

 

 
$(document).on("dblclick", '.text1', function() 
 
{ 
 
    $(this).hide(); $(this).closest('.item1').find('.edit_text1').val($(this).text()).show(); 
 
}); 
 

 
$(document).on("click", ".edit_text1", function() 
 
{ 
 
    return false; 
 
}); 
 

 

 
$(document).on("click", function() 
 
{ 
 
    var editingText = $('.edit_text1:visible'); 
 
    if (editingText.length) 
 
    { 
 
     editingText.hide(); 
 
     editingText.closest('.item1').find('.text1').text($(editingText).val()).show(); 
 
    } 
 
}); 
 

 

 
    var count = 1; 
 
var selectedDraggable; 
 

 
ko.bindingHandlers.draggable={ 
 
    init: function(element, valueAccessor, allBindingsAccessor, viewModel) { 
 
     $(element).draggable(); 
 
     $(element).addClass('item1' + count); 
 
     count++; 
 
     $(element).on('click', function() { 
 
      selectedDraggable = $(this); 
 
     }) 
 
    } 
 
}; 
 

 

 
var vm=function(){ 
 
    var self=this; 
 
    self.items1=ko.observableArray(); 
 
    self.textContent1 = ko.observable(''); 
 
    self.init=function(){ 
 
     self.items1([]); 
 
    } 
 
    self.remove=function(item){ 
 
     console.log(item); 
 
     self.items1.remove(item); 
 
    } 
 
    self.addNew1 = function() { 
 
     self.items1.push(self.textContent1()); 
 
     self.textContent1(''); 
 
    } 
 
    self.init(); 
 
} 
 

 
ko.applyBindings(new vm()); 
 

 

 

 
$("#fss").change(function() { 
 
    selectedDraggable.css("font-family", $(this).val()); 
 
}); 
 

 

 

 
$("#size1").change(function() { 
 
    selectedDraggable.css("font-size", $(this).val() + "px"); 
 
}); 
 

 

 
$('.fooo').click(function(){ 
 
    selectedDraggable.css("color", $(this).attr('data-color')); 
 
}); 
 

 
$(document).ready(function(){ 
 
    $("#rotateButton1").click(function(){ 
 
     var x= $("#rotateInput").val();  
 
    selectedDraggable.css('transform','rotate(' + x + 'deg)'); 
 
     
 
    }); 
 
}); 
 
}​ 
 

 

 

 

 

 
function dothat(){ 
 
var z = 1; //value to make div overlappable 
 

 
$('#addText').click(function (e) { 
 
    /** Make div draggable **/ 
 
    $('<div />', { 
 
     class: 'ui-widget-content', 
 
     appendTo: '.container', 
 
     draggable: { 
 
      containment: 'parent', 
 
      start: function(event, ui) { 
 
       $(this).css('z-index', ++z); 
 
      } 
 
     } 
 
    }); 
 
}); 
 

 

 
$(document).on("dblclick", '.text', function() 
 
{ 
 
    $(this).hide(); $(this).closest('.item').find('.edit_text').val($(this).text()).show(); 
 
}); 
 

 
$(document).on("click", ".edit_text", function() 
 
{ 
 
    return false; 
 
}); 
 

 

 
$(document).on("click", function() 
 
{ 
 
    var editingText = $('.edit_text:visible'); 
 
    if (editingText.length) 
 
    { 
 
     editingText.hide(); 
 
     editingText.closest('.item').find('.text').text($(editingText).val()).show(); 
 
    } 
 
}); 
 

 

 
    var count = 1; 
 
var selectedDraggable; 
 

 
ko.bindingHandlers.draggable={ 
 
    init: function(element, valueAccessor, allBindingsAccessor, viewModel) { 
 
     $(element).draggable(); 
 
     $(element).addClass('item' + count); 
 
     count++; 
 
     $(element).on('click', function() { 
 
      selectedDraggable = $(this); 
 
     }) 
 
    } 
 
}; 
 

 

 
var vm=function(){ 
 
    var self=this; 
 
    self.items=ko.observableArray(); 
 
    self.textContent = ko.observable(''); 
 
    self.init=function(){ 
 
     self.items([]); 
 
    } 
 
    self.remove=function(item){ 
 
     console.log(item); 
 
     self.items.remove(item); 
 
    } 
 
    self.addNew = function() { 
 
     self.items.push(self.textContent()); 
 
     self.textContent(''); 
 
    } 
 
    self.init(); 
 
} 
 

 
ko.applyBindings(new vm()); 
 

 

 

 
$("#fs").change(function() { 
 
    selectedDraggable.css("font-family", $(this).val()); 
 
}); 
 

 

 

 
$("#size").change(function() { 
 
    selectedDraggable.css("font-size", $(this).val() + "px"); 
 
}); 
 

 

 
$('.foo').click(function(){ 
 
    selectedDraggable.css("color", $(this).attr('data-color')); 
 
}); 
 

 
$(document).ready(function(){ 
 
    $("#rotateButton").click(function(){ 
 
     var x= $("#rotateInput").val();  
 
    selectedDraggable.css('transform','rotate(' + x + 'deg)'); 
 
     
 
    }); 
 
}); 
 
}​
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="http://cdnjs.cloudflare.com/ajax/libs/knockout/2.3.0/knockout-min.js"></script> 
 
<script 
 
src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script><script src="//cdnjs.cloudflare.com/ajax/libs/knockout/2.3.0/knockout-min.js"></script> 
 
<link rel="stylesheet" 
 
href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" /> 
 
    <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script> 
 
    <link rel="stylesheet" 
 
href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> 
 
<script src="//code.jquery.com/jquery-1.10.2.js"></script> 
 

 
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script> 
 

 
<script src="http://circletype.labwire.ca/js/circletype.js"></script><script src="http://tympanus.net/Development/Arctext/js/jquery.arctext.js"></script> 
 
<link rel="stylesheet" href="/resources/demos/style.css"> 
 

 

 

 

 

 
<body onload="dothis();dothat()">​

+0

false를 반환하면 onclick은 이벤트 전파를 중지하고 true를 반환합니다. –

+2

SO에 대한 질문에 대한 몇 가지 힌트 - 먼저 코드를 좀 더 읽기 쉽도록 포맷하는 것이 좋습니다. 둘째, 갈등이 있다고 말하지만, 무엇이 작동을 멈추게 하는지를 말하지 않습니다. 우리가 당신을 위해 기본적인 디버깅을 할 것을 기대하지 말고, 시작을 위해 일하는 것이 무엇인지를 기술하려고 시도하지 마십시오. 아무도 200 라인의 저조한 것을 트래킹하려고하지 않습니다. 형식화 된 코드로 당신이 무엇을 말하고 있는지 알 수 있습니다. –

+0

@YanjunLin return true는 작동하지 않았습니다. – user6483684

답변

-2
/* 
⚐ A Revealing Module Pattern (Public & Private) w Public Namespace 'myscript' like below avoids collisions with other scripts. 

    myScript.color --> red 
    myScript.hello('Jane') --> Hello Jane 
*/ 

var myScript = (function() { 

    // reference document only once for performance 
    var doc = document; 

    // object to expose as public properties and methods such as clock.now 
    var pub = {}; 

    //myscript.color 
    pub.color = 'red'; 

    //myscript.hello 
    pub.hello = function (name) { 
     alert('Hello ' + name); 
    }; 

    //API 
    return pub; 
}()); 
0

이 코드와 링크

를 참조하십시오 제거하면 문제가되지 않습니다되어 찾을 수가 캔트
<body onload="func1(); func2();"> 

http://www.htmlgoodies.com/beyond/javascript/article.php/3724571/Using-Multiple-JavaScript-Onload-Functions.htm

+0

두 번째 스크립트가 실행되지 않습니다. 컨테이너 사이를 전환하려면 토글을 사용하고 있습니다. – user6483684

+0

이 링크 http : /를 참조하십시오. /stackoverflow.com/questions/1327756/can-you-have-multiple-document-readyfunction-sections – Wenson

관련 문제