2015-01-08 59 views
0

我一直在尝试几个小时,在这个简短的脚本中禁用一个简单的JavaScript按钮(id="storeButton")。我已经尝试了互联网上发现的所有语法变体,但无济于事。 我正在wordpress页面中执行此操作。有人可以告诉我什么是我的错误?为什么我不能禁用我的按钮?

WordPress的页面:

<p style="text-align: center;">Welcome!</p> 
<strong>What is this project, and why contribute?</strong> 

text 

&nbsp; 

<script src="/scripts/alert.js" type="text/javascript"></script> 
<script src="/webcamjs/webcam.js" type="text/javascript"></script> 
<script src="/scripts/take_snapshot.js" type="text/javascript"></script> 

<div class="centre" id="my_camera" style="width:320px; height:240px;"></div> 
<br> 
<div id="freezeButton"></div> 
<div id="storeButton"></div> 
<br> 
<div id="my_result"></div> 

<script type="text/javascript"> 
<!-- 
ShowAlert(); 
webcamConfigure(); 
attach(); 
createFreezeButton(); 
disableBtn(); 
createStoreButton(); 
//--> 
</script> 

take_snapshot.js,那里的问题似乎是

document.getElementById("storeButton").disabled = true;

function webcamConfigure(){ 
    Webcam.set({ 
     width: 320, 
     height: 240, 
     dest_width: 640, 
     dest_height: 480, 
     image_format: 'jpeg', 
     jpeg_quality: 100, 
     force_flash: true 
    }); 
} 

function attach(){ 
    Webcam.attach('#my_camera'); 
} 

function createStoreButton(){ 
    sendButton = document.createElement("input"); 
    sendButton.type = "button"; 
    sendButton.value = "Send snapshot!"; 
    sendButton.onclick = function store(){ 
     Webcam.snap(function(data_uri) { 
      document.getElementById('my_result').innerHTML = '<img src="'+data_uri+'"/>'; 
     }); 
    } 
    placeHolder = document.getElementById("storeButton"); 
    placeHolder.appendChild(sendButton); 
} 

function disableBtn(){ 
    document.getElementById("storeButton").disabled = true; 
} 

function createFreezeButton(){ 
    myButton = document.createElement("input"); 
    myButton.type = "button"; 
    myButton.value = "Take snapshot!"; 
    myButton.onclick = function freeze(){ 
     if (myButton.value=="Take snapshot!") { 
      myButton.value = "Discard snapshot!"; 
      Webcam.freeze(); 
      //document.getElementById("storeButton").disabled = false; 
     } 
     else { 
      myButton.value = "Take snapshot!"; 
      Webcam.unfreeze(); 
      //document.getElementById("storeButton").disabled = true; 
     } 
    } 
    placeHolder2 = document.getElementById("freezeButton"); 
    placeHolder2.appendChild(myButton); 
} 

回答

1

您试图关闭被称为 “storeButton” 的DIV,而不是禁用您创建的包含在该div内的按钮。

var sendButton; 
function webcamConfigure(){ 
    Webcam.set({ 
     width: 320, 
     height: 240, 
     dest_width: 640, 
     dest_height: 480, 
     image_format: 'jpeg', 
     jpeg_quality: 100, 
     force_flash: true 
    }); 
} 

function attach(){ 
    Webcam.attach('#my_camera'); 
} 

function createStoreButton(){ 
    sendButton = document.createElement("input"); 
    sendButton.type = "button"; 
    sendButton.value = "Send snapshot!"; 
    sendButton.onclick = function store(){ 
     Webcam.snap(function(data_uri) { 
      document.getElementById('my_result').innerHTML = '<img src="'+data_uri+'"/>'; 
     }); 
    } 
    placeHolder = document.getElementById("storeButton"); 
    placeHolder.appendChild(sendButton); 
} 

function disableBtn(){ 
    sendButton.disabled = true; 
} 

希望这有助于

:)大卫

:在你的情况下,一个简单的办法做到这一点是建立按钮时有一个公共变种,当你想禁用它可用
+0

我也尝试过。我只是重试它,但仍然没有任何反应。感谢您的意见,但!我想知道这是否与wordpress有关? – Raoul

0

那么,有人暂时发布downvoted答案,说我的按钮工作,但它缺乏CSS。这不是一个完全正确的答案,但似乎他有一些好点,因为这让我走上了正轨。 (如果你正在阅读本文,亲爱的前答复者,重新发布你的答案,我会赞扬它!)。

我真的不知道我在做什么,在这里...和我的代码的结构肯定是对JS的神明的亵渎,但它的工作原理,所以这里有云:

var sendButton; 
var freezeButton; 

function webcamConfigure(){ 
    Webcam.set({ 
     width: 320, 
     height: 240, 
     dest_width: 640, 
     dest_height: 480, 
     image_format: 'jpeg', 
     jpeg_quality: 100, 
     force_flash: true 
    }); 
} 

function attach(){ 
    Webcam.attach('#my_camera'); 
} 

function createStoreButton(){ 
    sendButton = document.createElement("input"); 
    sendButton.type = "button"; 
    sendButton.value = "Send snapshot!"; 
    sendButton.disabled = true; 
    sendButton.onclick = function store(){ 
     Webcam.snap(function(data_uri) { 
      document.getElementById('my_result').innerHTML = '<img src="'+data_uri+'"/>'; 
     }); 
     freezeButton.value = "Take snapshot!" 
     sendButton.disabled = true; 
    } 
    placeHolder = document.getElementById("storeButton"); 
    placeHolder.appendChild(sendButton); 
} 

function createFreezeButton(){ 
    freezeButton = document.createElement("input"); 
    freezeButton.type = "button"; 
    freezeButton.value = "Take snapshot!"; 
    freezeButton.onclick = function freeze(){ 
     if (freezeButton.value=="Take snapshot!") { 
      freezeButton.value = "Discard snapshot!"; 
      Webcam.freeze(); 
      sendButton.disabled = false; 
     } 
     else { 
      freezeButton.value = "Take snapshot!"; 
      Webcam.unfreeze(); 
      sendButton.disabled = true; 
     } 
    } 
    placeHolder2 = document.getElementById("freezeButton"); 
    placeHolder2.appendChild(freezeButton); 
} 
相关问题