Saya ingin lulus parameter (yaitu string) untuk fungsi Onclick. Untuk saat ini, saya melakukan ini:
'<input type="button" onClick="gotoNode(' + result.name + ')" />'
dengan hasil.nama untuk contoh yang sama dengan string "Tambahkan". Ketika saya klik pada tombol ini, saya memiliki kesalahan yang mengatakan bahwa Menambahkan tidak didefinisikan. Karena ini functioncall bekerja sempurna dengan parameter numerik, saya berasumsi bahwa ia memiliki sesuatu untuk dilakukan dengan simbol-simbol "" dalam string. Apakah ada yang punya masalah ini sebelumnya?
Sepertinya anda're gedung DOM elemen dari string. Anda hanya perlu menambahkan beberapa kutipan di seluruh hasilnya.nama:
'<input type="button" onClick="gotoNode(\'' + result.name + '\')" />'
Anda harus benar-benar melakukan hal ini dengan tepat DOM metode sekalipun.
var inputElement = document.createElement('input');
inputElement.type = "button"
inputElement.addEventListener('click', function(){
gotoNode(result.name);
});
document.body.appendChild(inputElement);
Hanya akan menyadari bahwa jika ini adalah lingkaran atau sesuatu, hasil
akan berubah sebelum peristiwa kebakaran, dan anda'd butuhkan untuk membuat tambahan ruang lingkup gelembung untuk bayangan mengubah variabel.
Beberapa masalah bagi saya dengan hormat untuk menggunakan string melarikan diri dalam event onClick dan sebagai jumlah dari argumen tumbuh, itu akan menjadi rumit untuk mempertahankan.
Pendekatan berikut akan memiliki satu hop - On klik - ambil kontrol ke handler metode dan metode pengendali, berdasarkan objek peristiwa, dapat mengurangi klik peristiwa dan objek sesuai.
Ini juga menyediakan cara yang lebih bersih untuk menambahkan lebih banyak argumen dan memiliki lebih banyak fleksibilitas.
<button type="button"
className="btn btn-default"
onClick="invoke"
name='gotoNode'
data-arg1='1234'>GotoNode</button>
Pada javascript lapisan:
invoke = (event) => {
let nameOfFunction = this[event.target.name];
let arg1 = event.target.getAttribute('data-arg1');
//We can add more args as needed...
window[nameOfFunction](arg1)
//hope function is in window.
//Else the respective object need to be used
})
}
Keuntungan di sini adalah bahwa kita dapat memiliki banyak argumen (dalam contoh di atas, data-arg1, data-arg2....) sebagai dibutuhkan.
Saya sarankan tidak menggunakan HTML onclick
penangan, dan menggunakan sesuatu yang lebih umum seperti dokumen.getElementById
.
HTML:
<input type="button" id="nodeGoto" />
JavaScript:
document.getElementById("nodeGoto").addEventListener("click", function() {
gotoNode(result.name);
}, false);
Saya menebak, anda membuat tombol menggunakan JavaScript itu sendiri. Jadi, error dalam kode anda adalah bahwa, itu akan membuat dalam bentuk ini
<input type="button" onClick="gotoNode(add)" />'
Pada kondisi saat ini, tambah
akan dianggap sebagai pengenal seperti variabel atau fungsi panggilan. Anda harus melarikan diri nilai seperti ini
'<input type="button" onClick="gotoNode(\'' + result.name + '\')" />'
Ini adalah bagus dan rapi cara untuk mengirim nilai atau objek.
<!DOCTYPE html>
<html>
<body>
<h1 onclick="test('wow',this)">Click on this text!</h1>
<script>
var test =function(value,object){
object.innerHTML=value;
};
</script>
</body>
</html>
Coba Ini..
HTML:
<button id="a1" type="button" onclick="return a1_onclick('a1')">a1</button>
JavaScript:
<script language="javascript" type="text/javascript">
function a1_onclick(id) {
document.getElementById(id).style.backgroundColor = "#F00";
}
</script>
Catatan: pastikan untuk mengirim argumen antara ' ' tanda-tanda seperti ('a1') di html
Beberapa Parameter :
bounds.extend(marker.position);
bindInfoWindow(marker, map, infowindow,
'<b>' + response[i].driver_name + '</b><br>' +
'<b>' +moment(response[i].updated_at).fromNow() + '</b>
<button onclick="myFunction(\''+response[i].id+'\',\''+driversList+'\')">Click me</button>'
);
juga anda gunakan kuburan simbol aksen ( ` ) dalam string
coba :
`<input type="button" onClick="gotoNode('${result.name}')" />`
untuk informasi lebih lanjut kunjungi MDN dan Stackoverflow
Oleh Chrome,Edge,Firefox (Gecko),Opera,Safari dukungan,tetapi tidak mendukung Internet Explorer.
Edited: Jika kebutuhannya adalah untuk referensi objek global (js) dalam kode HTML anda, anda dapat mencoba ini. [Don't menggunakan tanda kutip (' atau ") sekitar variabel]
[Biola][1] referensi.
Javascript:
var result = {name: 'hello'};
function gotoNode(name) {
alert(name);
}
HTML:
<input value="Hello" type="button" onClick="gotoNode(result.name)" />
jika anda tombol ini dihasilkan secara dinamis:
Anda dapat melewati string parameter untuk fungsi javascript seperti di bawah kode:
Aku melewati 3 parameter mana yang ketiga adalah parameter string semoga ini bisa membantu.
var btn ="<input type='button' onclick='RoomIsReadyFunc("+ID+","+RefId+",\""+YourString+"\");' value='Room is Ready' />";
//your javascript function
function RoomIsReadyFunc(ID, RefId, YourString)
{
alert(ID);
alert(RefId);
alert(YourString);
}
Berikut ini adalah Jquery solusi apa yang saya'm menggunakan.
Jquery
$("#slideshow button").click(function(){
var val = $(this).val();
console.log(val);
});
HTML
<div id="slideshow">
<img src="image1.jpg">
<button class="left" value="back">❮</button>
<button class="right" value="next">❯</button>
</div>
Jika anda menambahkan tombol atau link dinamis dan menghadapi masalah maka hal ini dapat menjadi bantuan. Aku diselesaikan dengan cara ini.
var link= $(contentData1[i]).find("td:first font b a").attr("href",'javascript:onClick=openWin(\'' + tdText + '\')');
Saya baru ke HTML, JQuery dan JS. Jadi mungkin kode saya tidak akan optimal atau sintaks, tapi itu bekerja untuk saya.
Untuk melewati beberapa parameter yang anda dapat melemparkan tali dengan menggabungkan dengan nilai ASCII seperti, untuk tanda kutip tunggal kita dapat menggunakan '
var str= "'"+ str+ "'";
parameter yang sama anda dapat lulus ke onclick()
acara.Dalam sebagian besar kasus itu bekerja dengan setiap browser.
jika digunakan untuk generasi satu set tombol dengan parameter yang berbeda dari penangan. https://www.w3schools.com/js/js_function_closures.asp
let some_button = document.createElement( "button" );
some_button.type = "button";
some_button.onclick = doWithParam( some_param );
function doWithParam( param ){
return function(){
alert( param );//<------Your code here
}
}
jika kita lakukan:
some_button.onclick = foo( some_param );
function foo( param ){
alert( param );
}
kemudian fungsi foo mulai setelah setiap update page.
jika kita lakukan:
for( let i = 0; i < 10; ++i ){
var inputElement = document.createElement('input');
inputElement.type = "button"
inputElement.addEventListener('click', function(){
gotoNode(result.name);
});
document.body.appendChild(inputElement);
}
kemudian untuk semua tombol yang dibuat dalam lingkaran, lalu nilai parameter "hasilnya.nama"
jika anda menggunakan asp anda dapat menggunakan javascript:
HTML:
<input type='button' value='test' onclick='javascript: EditSelectedOptionName(x,y)' />"
Javascript:
function EditSelectedOptionName(id, name) {
console.log(id);
console.log(name);
}
Berikut karya-karya yang bagi saya sangat baik,
<html>
<head>
<title>HTML Form</title>
</head>
<body>
<form>
<input type="button" value="ON" onclick="msg('ON')">
<input type="button" value="OFF" onclick="msg('OFF')">
</form>
<script>
function msg(x){
alert(x);
}
</script>
</body>
</html>
<style type="text/css">
#userprofile{
display: inline-block;
padding: 15px 25px;
font-size: 24px;
cursor: pointer;
text-align: center;
text-decoration: none;
outline: none;
color: #fff;
background-color: #4CAF50; //#c32836
border: none;
border-radius: 15px;
box-shadow: 0 9px #999;
width: 200px;
margin-bottom: 15px;
}
#userprofile:hover {
background-color: #3e8e41
}
#userprofile:active {
background-color: #3e8e41;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
#array {
border-radius: 15px 50px;
background: #4a21ad;
padding: 20px;
width: 200px;
height: 900px;
overflow-y: auto;
}
</style>
if(data[i].socketid!=""){
$("#array").append("<button type='button' id='userprofile' class='green_button' name="+data[i]._id+" onClick='chatopen(name)'>"+data[i].username+"</button></br>");
}else{
console.log('null socketid >>', $("#userprofile").css('background-color'));
//$("#userprofile").css('background-color','#c32836 ! important');
$("#array").append("<button type='button' id='userprofile' class='red_button' name="+data[i]._id+" onClick='chatopen(name)'>"+data[i].username+"</button></br>");
$(".red_button").css('background-color','#c32836');
}