$(this).attr({class:“activeTab”});不起作用,因为这是未定义的
$(this).attr({class: "activeTab"}); is not working because this is undefined
这是我的JS代码,我遇到的问题是标题中的问题。似乎$(this)正在返回undefined。:
function load() {
$(".inactiveTab").attr("onclick", "clickInactiveTab()");
}
function clickInactiveTab() {
$(this).attr("class", "activeTab");
}
html如下:
<div class="inactiveTab">Tab 1</div>
<div class="inactiveTab">Tab 2</div>
这不是用jQuery:设置事件处理程序的方式
function load() {
$(".inactiveTab").click(clickInactiveTab);
}
您的代码使得处理程序代码("clickInactiveTab()"
)将被解释为函数体。因为代码在没有任何显式上下文的情况下调用了实际的处理程序函数,所以this
的值将是undefined
或window
(取决于您是否处于"严格"模式)。
在我看来,更好的做法是将处理程序设置为来自<body>
:的委托处理程序
$("body").on("click", ".inactiveTab", clickInactiveTab);
使用纯JS
function load() {
for(var i = 0; i< inactiveTabArray.length; i++){
inactiveTabArray[i].classList.remove("activeTab")
}
this.classList.add("activeTab")
}
var inactiveTabArray = document.querySelectorAll(".inactiveTab");
for( var inactiveTab = 0; inactiveTab< inactiveTabArray.length; inactiveTab++){
inactiveTabArray[inactiveTab].addEventListener("click", load, false)
}
.activeTab{color: red}
<div class="inactiveTab">Tab 1</div>
<div class="inactiveTab">Tab 2</div>
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 监视函数从服务返回不起作用,但作用域函数起作用
- 幻灯片滚动javascript不起作用
- 简单的javascript在Shopify中不起作用
- Recaptcha在IE7和IE8中不起作用
- Ember Data DS.Model's set函数不起作用
- $(this).attr({class:“activeTab”});不起作用,因为这是未定义的
- Aurelia反复绑定.因为不起作用
- AJAX调用不起作用,因为它继续转到链接
- 类绑定在 emberjs 中不起作用,因为不检查属性
- $(..).工具提示不起作用,因为 jQuery 1.9.2 由于旧的 jQuery UI 1.8.16 库而不起作用?
- ng路由不起作用.我不知道错误是什么,因为控制台中没有显示任何内容
- Flowplayer JS API 不起作用,因为 Flowplayer 未“加载”
- getElementByID 不起作用,因为字段在某种框架中,我如何访问它
- 向上滚动事件,因为铬不起作用
- 织物 js 粗斜体不起作用,因为 JSON 中的字体样式对象
- 因为让循环不起作用
- “返回假;”,因为表单提交不起作用
- 使用单词'英语'因为变量/对象名称在javascript中不起作用
- 引用类内的变量..当“;这个"不起作用,因为我们处于函数中