jQuery .on()语法并将多个参数传递给function

时间:2013-09-24 18:11:18

标签: javascript jquery firefox

我有以下脚本,它在Firefox上不起作用,似乎适用于Google Chrome。

    <script>

    $(document).ready(function(){
    $('#btn_2').on('click', function () {addselectable(event, 7)});

     $(function() {
       $( "#selectable" ).selectable();
        });  
    });

    </script>

     function addselectable (event, size) {
        event.preventDefault();
        event.stopPropagation();
        alert('hello');
        var s = size;
        var p = $('<ol>').attr('id', 'selectable');
        var count = 0
        for (var i = s; i >= 0; i--)
        {
            count = count + 1;
            var li = $('<li>').attr('class', 'ui-state-default').text(count);
             $(li).appendTo(p)
             p.append(li);
        }
        $(p).appendTo('body');
        alert('I am done');

//};

}

如何在点击事件中将多个参数传递给我的函数'addselectable',是否有另一种方法可以在所有浏览器上运行?

2 个答案:

答案 0 :(得分:3)

您没有为实际的事件处理程序指定event参数:

$('#btn_2').on('click', function (event) {addselectable(event, 7)});

您在Chrome中的工作原理是因为它模仿IE并公开全局event对象。 Firefox没有。

答案 1 :(得分:3)

事件应该作为函数(事件)的参数

更改

$('#btn_2').on('click', function () {addselectable(event, 7)});

$('#btn_2').on('click', function (event) {addselectable(event, 7)});

虽然没有经过我的测试,但请尝试一下。