【问题标题】:How to change a class to the nodeValue of the element? What am I doing wrong?如何将类更改为元素的nodeValue?我究竟做错了什么?
【发布时间】:2014-10-13 02:12:31
【问题描述】:

我想将滚动条的效果(类)更改为用户单击的按钮的效果。这是我的代码:

var scroller=$('#main ul.stroll'); --> I know this is right.. just a var reference

function effectSelect(e){

    var target = $(e.currentTarget);

    $(target).click(function(){
        var effectName=target.nodeValue;
        var effect='stroll ' + effectName;
        scroller.removeClass();
        scroller.addClass(effect);
    })
}

它在某个时候工作,然后突然停止工作。当我运行它时,控制台中没有错误。我究竟做错了什么?如果您需要更多信息,请告诉我

【问题讨论】:

  • target 是一个 jQuery 对象,它没有 nodeValue 属性!当你有一个 jQuery 对象时,你可以使用 texthtml 方法。
  • 好的,谢谢。只是有点进入 JQuery/Javascript。我会用什么代替? .html?
  • 谢谢,朋友!我如何在这里为你投票?
  • 使用e.currentTarget(是target的原生JS版本)。但是我不确定逻辑是否正确。您应该使用从单击处理程序中传递的ev 参数中获取的target
  • 所以我应该使用 e.target 而不是 e.currentTarget?你的意思是把 e 放在 click 函数参数中,而不是初始 effectSelect 参数中?

标签: javascript jquery button onclick scroller


【解决方案1】:

终于想通了。希望这对处于类似情况的任何人都有帮助!

function init(event) {

    stroll.bind($scroller);

    $('.nav li').on('click', function(event){
        var target = $(event.target);
        var effectName = target.text();
        var effect = 'stroll ' + effectName;
        $scroller.removeClass();
        $scroller.addClass(effect);

        console.log($scroller.attr('class'))
    });

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 2016-07-18
    • 2019-12-23
    • 2014-06-15
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    相关资源
    最近更新 更多