如何在jQuery点击事件中调用自定义函数?
我定义了一个执行某些操作的clearOrder
函数。
然后,当我点击DOM元素时,我想调用该函数,然后再做一些操作。
这些操作只是应用和删除类。如您所见,我想在将特定类添加到DOM元素之前,将元素中指定的现有类清除为一种重置。
HTML
<div id="neti" class="tile"> contents </div>
<div id="sife" class="tile"> contents </div>
的javascript
(function() {
clearOrder(function() {
return $('.tile').removeClass("order-1 order-2 order-3 order-4 order-5 order-6 order-7 order-8 order-9 order-10 order-11 order-12 order-13 order-14 order-15 order-16");
});
jQuery(function() {
$('#neti').click(function() {
clearOrder.call;
$('this').addClass("active");
$('#neti').addClass("order-1");
$('#sife').addClass("order-2");
});
});
}).call(this);
脚本行为应该是当我点击一个元素时,它应该删除所有指定的类,然后应用某些类。
编辑:更改为以下内容,但仍无法正常运行。
(function() {
clearOrder(function() {
return $('.tile').removeClass("order-1 order-2 order-3 order-4 order-5 order-6 order-7 order-8 order-9 order-10 order-11 order-12 order-13 order-14 order-15 order-16");
});
jQuery(function() {
$('#neti').click(function() {
clearOrder();
$('this').addClass("active");
$('#neti').addClass("order-1");
$('#sife').addClass("order-2");
答案 0 :(得分:1)
有多个问题
(function () {
//function declaration syntax was wrong
function clearOrder() {
return $('.tile').removeClass("order-1 order-2 order-3 order-4 order-5 order-6 order-7 order-8 order-9 order-10 order-11 order-12 order-13 order-14 order-15 order-16");
};
jQuery(function ($) {
$('#neti').click(function () {
//add () to the end of the function reference to invoke it
clearOrder();
// this is not a string literal, it has to be used as a keyword(without enclosing '') to refer the current clicked element
$(this).addClass("active");
$('#neti').addClass("order-1");
$('#sife').addClass("order-2");
});
});
}).call(this);
演示:Fiddle