2013-07-24 105 views
0

我有链接发送submitTask(takk,布局)函数(它是我自己的函数,她添加值来形成并发送它)。我想结合这个功能与jQuery。我做了这样的事情。带参数的Jquery自定义函数

$(function() { 
    $('#edit').click(function(e) { 
     e.preventDefault(); 
     submitTask('edit','edit'); 
    }); 
}); 

<a href="#" id="edit">Link</a> 

它的工作原理,但我想改变普遍,而jQuery的功能全部元素我想(我不想定义$()。点击()为每在脚本)功能元素将被称为的onclick这样的:

<a href="#" onclick="jqueryFunction('task','layout')>Link</a> 

因为我仍想保留.preventdefautlFunction()。我不知道如何使用参数jQuery函数。我需要的是这样的,但正常工作:

function jqueryFunction(task,layout){ 
$('a').preventDefault(); 
submitTask(task,layout); 
} 
+1

看看这个:http://stackoverflow.com/问题/ 12093192/how-to-create-a-jquery-function – Pieter

回答

1

其实用突兀的事件处理程序一般是不好的做法 - 你最好与你的第一个例子中去,然后用一个类来处理点击。

例如您的标记可改为:

<a href="#" class="customClick" id="edit">Click Me</a> 

然后jQuery代码会是这个样子:

$('a.customClick').on('click', function(e) { 
    e.preventDefault(); 
    var action = $(this).prop('id'); 
    submitTask(action, action); 
}); 

如果你需要定义一个布局是不同的动作,请使用switch()声明:

$('a.customClick').on('click', function(e) { 
    e.preventDefault(); 
    var action = $(this).prop('id'), 
     layout; 

    switch(action) 
    { 
     case 'edit': 
      layout = 'edit'; 
      break; 
    } 
    submitTask(action, layout); 
}); 
+0

但是如果我想获得多于1个属性,在我的例子中都是'编辑',但是如果它们不同,则只有1个ID。如何解决这个问题? – Sheryf

+0

使用'switch'语句,然后根据点击元素的ID分配'layout'。 – BenM

+0

它的工作,但我不喜欢在jQuery的xD。也许是因为即时开始使用这种方式,我不习惯这种编程方式。感谢帮助。 – Sheryf