如何在jQuery点击事件中使用宽度进行操作?

时间:2018-03-06 14:33:32

标签: javascript function javascript-events

我正在创建一个函数,每次调用它时,1px被减去图像的宽度。我无法弄明白...... 像这样:

var leafCompress = function(){
.css("width" -1 + "px");    //This line is definitely wrong
        }

(以下代码正常工作)这里我添加了事件监听器,所以每次单击都会调用leafCompress函数。

leaf.on("click",function(){
           leafCompress();
});

3 个答案:

答案 0 :(得分:1)

问题来自你的函数leafCompress



$( "#panda" ).on('click', () => {
    resize();
});


const resize = () => {
  let width = $("#panda").width() - 50; // get the width of the image and substract 50
   $("#panda").css("width", width);
}

#panda {
  width: 400px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img id="panda" src="http://r.ddmcdn.com/w_624/s_f/o_1/cx_0/cy_17/cw_624/ch_416/APL/uploads/2014/06/red-panda-09-625x350.jpg" />
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我不确定你是否使用jQuery但是,你可以使用jQuery .width函数, css(&#39; width&#39;)函数返回宽度为字符串,即:&#34; 780px&#34;并使用它来设置你通常做的宽度属性.css(&#39; width&#39;,valueToBeSet)

但是,使用jQuery .width函数可以获得相同的结果 $()。width()将返回实际宽度和$()。width(value)将宽度设置为值

答案 2 :(得分:0)

最琐碎的方式:

leaf.click(function(){
    var node = $(this);
    node.css('width', node.width() - 1 + 'px');
})

如果事件处理程序是一个函数,&#34;这个&#34;指向事件目标。