2014-08-28 57 views
1

我要叫上两个不同的事件相同的功能,即在低于给定的例子来说明:如何在不重复的情况下为两个不同的jQuery事件使用相同的代码?

// calling a function on keyup 
$('#textarea').keyup(function() { 
    var text_length = $('#textarea').val().length; 
    var text_remaining = text_max - text_length; 

    $('#textarea_feedback').html(text_remaining + ' characters remaining'); 
}); 

// calling same function on click 
$('#cancel').click(function() { 
    var text_length = $('#textarea').val().length; 
    var text_remaining = text_max - text_length; 

    $('#textarea_feedback').html(text_remaining + ' characters remaining'); 
}); 

请注意,上面的函数做同样的事情在这两种情况下,我只是有在不同的条件下调用该函数,

现在我的问题是我可以在同一行中设置两个事件吗? ,这样我就可以避免两次设置功能。 请为此提出一些解决方案。 谢谢.... :)

回答

6

只需单独声明函数,然后在两个事件中使用它。

var func_event = function() { 
    var text_length = $('#textarea').val().length; 
    var text_remaining = text_max - text_length; 

    $('#textarea_feedback').html(text_remaining + ' characters remaining'); 
}; 

$('#textarea').keyup(func_event); 
$('#cancel').click(func_event); 
+0

是的,这可以作为一种选择,但我可以做这样的事情,因为我们在做如果条件在PHP中,如果其中一个条件变为true,则执行该操作。就像在php中条件?...你能提供这样的解决方案吗? – 2014-08-28 19:29:02

+0

@ user3172176:不,你不能。 – 2014-08-28 19:32:40

+0

嗯.. okkk非常感谢您的善意回应..我将与您提供的解决方案一起去...... :) – 2014-08-28 19:34:00

0

你可以使用一个函数:

// calling a function on keyup 
$('#textarea').keyup(function() { 
     exampleFunction(); 
}); 

// calling same function on click 
$('#cancel').click(function() { 
     exampleFunction(); 
}); 

function exampleFunction(){ 

     var text_length = $('#textarea').val().length; 
     var text_remaining = text_max - text_length; 

     $('#textarea_feedback').html(text_remaining + ' characters remaining');}` 

希望能帮到你.. 再见

相关问题