如何使用jQuery传递参数/参数?

时间:2011-09-28 13:06:27

标签: javascript jquery

<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    function chooseLocationType(location, title, demand){
        alert(demand);
        }

<body>
<input 
    name="tempstaff_location" 
    class="ques_radio" 
    id='tempstaff_location'
    value='location_' 
    type="radio" onclick="chooseLocationType('a','b','c')" />
</body>

点击收音机框,我有下面的代码, 基于此的一个条件代码显示隐藏一些潜水。

还有一个jQuery脚本在Click和used函数上运行。

jQuery的(本)

input[name=tempstaff_location]").click(function(){
            if(jQuery(this).attr("checked")){


        });

如何将两个脚本合二为一。

4 个答案:

答案 0 :(得分:3)

拥有你的:

<script type="text/javascript">
    function chooseLocationType(location, title, demand){
        alert(demand);
        }
</script>

我会,因为你没有指定值'a','b'和'c'的来源,将它们作为数据属性添加到你的输入

<input 
    name="tempstaff_location" 
    class="ques_radio" 
    id='tempstaff_location'
    value='location_' 
    data-location="a"
    data-title="b"
    data-demand="c"
    type="radio"/>

最后在事件回调中访问它们

$("input[name=tempstaff_location]").click(function(){
     if(jQuery(this).attr("checked")){
         chooseLocationType($(this).data('location'), $(this).data('title'), $(this).data('demand') );
     }
});

答案 1 :(得分:0)

如果参数因每个元素而异,则将它们存储在元素中的data标记中。然后在点击处理程序中提取它们。这样你可以应用一个处理程序并同时执行这两个操作。如果更改chooseLocationType以接受位置类型数组,将会更容易。

<input 
    name="tempstaff_location" 
    class="ques_radio" 
    id='tempstaff_location'
    value='location_' 
    type="radio"
    data-location="a,b,c" />

$('input[name=tempstaff_location]").click(function(){
      if(jQuery(this).attr("checked")){
           chooseLocationType( $(this).data('location').split(/,/) );
      }
});

如果值已修复,则更容易,只需将调用移动到处理程序中即可。

<input 
    name="tempstaff_location" 
    class="ques_radio" 
    id='tempstaff_location'
    value='location_' 
    type="radio"/>

$('input[name=tempstaff_location]").click(function(){
      if(jQuery(this).attr("checked")){
           chooseLocationType( 'a','b','c' );
      }
});

答案 2 :(得分:0)

当您指定内联onclick属性时,它只是一个函数,基本上等效于此代码:

element.onclick = function () {
    chooseLocationType( 'a','b','c' );
};

在您的JavaScript文件中,您只需编写

即可
document.getElementById("tempstaff_location").onclick = function () {
    if(this.checked) {
        chooseLocationType( 'a','b','c' );
    }
}

通过id获取元素通常比通过标记名和attriute选择元素更好。

答案 3 :(得分:0)

您可以直接在页面加载时调用click事件,而不是在单选按钮html中调用。如果以下是html:

<input 
    name="tempstaff_location" 
    class="ques_radio" 
    id='tempstaff_location'
    value='location_' 
    data-location="a"
    data-title="b"
    data-demand="c"
    type="radio"/>      

然后你可以调用以下脚本:

jQuery('input[name=tempstaff_location]').click(function(){
         if(jQuery(this).attr('checked')) {
           chooseLocationType(jQuery(this).attr('data-location'),jQuery(this).attr('data-title'),jQuery(this).attr('data-demand'));
         }
     });