繁体   English   中英

函数没有被调用,我需要window.load吗?

[英]function not being called, do I need a window.load?

我正在尝试单击某项时更改其CSS样式。

ryan.js

function ryanClicked(id){
    document.getElementById(id).style.color = "blue";
    alert("Asdsa");
}

product.html

<head>
    <script src="ryan.js"></script>
</head>
<body>
    <div id ="sizeButton1"class="sizeButton" onclick="ryanClicked(sizeButton1)"> S </div>
    <div id ="sizeButton2"class="sizeButton" onclick="ryanClicked(sizeButton2)"> M </div>
    <div id ="sizeButton3"class="sizeButton" onclick="ryanClicked(sizeButton3)"> L </div>

我假设我需要某个地方的onReady或onLoad吗? 我有一段时间没有做过js了。 我的页面包含Jquery,因此可以将jquery用于ready事件。 我不确定这样做是否更好。

试试这个,您不需要传递id到您的函数,而是可以传递this (指的是被单击的元素),

 function ryanClicked(el) { el.style.color = "blue"; } 
 <div id="sizeButton1"class="sizeButton" onclick="ryanClicked(this)">S</div> <div id="sizeButton2"class="sizeButton" onclick="ryanClicked(this)">M</div> <div id="sizeButton3"class="sizeButton" onclick="ryanClicked(this)">L</div> 

如果您使用的是jQuery,则可能更喜欢:

<div id ="sizeButton1" class="sizeButton"> S </div>
<div id ="sizeButton2" class="sizeButton"> M </div>
<div id ="sizeButton3" class="sizeButton"> L </div>

和:

$(".sizeButton").on("click", function() {
    $(this).css("color", "blue")
})

https://jsfiddle.net/38ybvty8/

您无需在元素标签中传递id和onclick属性即可获得所需的结果。

 $(".sizeButton").click(function(){ $(this).css({'color':'blue'}); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id ="sizeButton1" class="sizeButton" >S </div> <div id ="sizeButton2" class="sizeButton" >M</div> <div id ="sizeButton3" class="sizeButton" >L</div> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM