将此变量传递给javascript方法的安全方法适用于所有浏览器

Safe way to pass this variable to javascript method for all browsers

本文关键字:方法 安全 适用于 浏览器 javascript 变量      更新时间:2023-09-26

我有这个ASPX:

<script type="text/javascript">
    function clickCheckBox(event) {
        if (event.className == "icon-check-empty icon-large"){
            event.className = "icon-ok icon-large";
        }else if(event.className == "icon-ok icon-large"){
            event.className = "icon-check-empty icon-large";
        } else {
            alert("Problem:  " + event.className);//TODO:  log error
        }
    }
</script>
...
<div class="check-box-column camera-column-padding">
    <span id="spCheckBox" runat="server">
        <i id="cameraSelectCheckBox" class="<%# (bool)Eval("Checked") ? "icon-ok icon-large" : "icon-check-empty icon-large" %>"   style="cursor:pointer;" onclick="clickCheckBox(this)"></i>
    </span>
</div>

我主要关心的是javascript部分。我将this传递给函数调用(这是event)。然后我只是做event.className来改变类类型。我在看这个老答案。我想知道是否可以这样做,所有浏览器都是这样,或者我应该为不同的浏览器做不同的,比如在链接的解决方案?

是的,这很好。另一个答案是支持不引人注目的JavaScript,这当然有它的优点,但不是获得工作代码的必要条件。

一个建议是将参数命名为element而不是event,因为将其命名为event可能会导致混淆,因为这意味着参数将是事件对象,而不是目标元素。