programing

jQuery의 .click - 사용자 함수에 매개 변수 전달

kingscode 2022. 10. 29. 11:57
반응형

jQuery의 .click - 사용자 함수에 매개 변수 전달

jQuery의 .click을 사용하여 파라미터로 함수를 호출하려고 하는데 작동하지 않습니다.

내가 원하는 작동 방식은 다음과 같습니다.

$('.leadtoscore').click(add_event('shot'));

호출하는 것

function add_event(event) {
    blah blah blah }

파라미터를 사용하지 않으면 다음과 같이 동작합니다.

$('.leadtoscore').click(add_event);
function add_event() {
    blah blah blah }

하지만 나는 파라미터를 내 소유자에게 전달할 수 있어야 한다.add_event기능.

어떻게 하면 좋을까요?

내가 쓸 수 있다는 거 알아.click(function() { blah }, 그러나 나는 전화하겠습니다.add_event다양한 장소에서 기능하며, 이 방법으로 기능하고 싶다고 생각하고 있습니다.

철저하게 하기 위해 jQuery click 이벤트 핸들러의 버전 1.4.3에서 도입된 기능의 일부인 다른 솔루션을 발견했습니다.

첫 번째 파라미터로서 jQuery에 의해 이벤트핸들러 함수에 자동으로 피드백되는 이벤트 객체에 데이터 맵을 전달할 수 있습니다.데이터 맵은 다음 주소로 전달됩니다..click()첫 번째 파라미터로 기능한 후 이벤트핸들러 함수로 기능합니다.

다음은 내 뜻을 설명하는 몇 가지 코드입니다.

// say your selector and click handler looks something like this...
$("some selector").click({param1: "Hello", param2: "World"}, cool_function);

// in your function, just grab the event object and go crazy...
function cool_function(event){
    alert(event.data.param1);
    alert(event.data.param2);
}

다음과 같은 익명 함수를 사용해야 합니다.

$('.leadtoscore').click(function() {
  add_event('shot')
});

예시와 같이 파라미터가 없는 함수 이름만 다음과 같이 호출할 수 있습니다.

$('.leadtoscore').click(add_event);

근데...add_event방법은 얻을 수 없다'shot'그게 매개 변수이긴 하지만 오히려click콜백에 전달합니다.콜백은event오브젝트 자체...경우에는 해당되지 않지만 다른 많은 경우에는 해당됩니다.매개 변수를 전달해야 하는 경우 익명 함수를 사용합니다. 또는 다음과 같이 데이터를 사용하고 전달하는 다른 옵션이 있습니다.

$('.leadtoscore').bind('click', { param: 'shot' }, add_event);

접속처:add_event, 다음과 같이 합니다.

function add_event(event) {
  //event.data.param == "shot", use as needed
}

그렇게 부르면...

$('.leadtoscore').click(add_event('shot'));

...여러분은add_event()함수를 되돌리다

function add_event(param) {
    return function() {
                // your code that does something with param
                alert( param );
           };
}

함수가 반환되어 인수로 사용됩니다..click().

다음과 같이 .on()을 사용하여 성공했습니다.

$('.leadtoscore').on('click', {event_type: 'shot'}, add_event);

그 다음 내부add_event다음과 같이 '샷'에 액세스할 수 있는 기능:

event.data.event_type

상세한 것에 대하여는, .on() 메뉴얼을 참조해 주세요.여기서 다음 예를 나타냅니다.

function myHandler( event ) {
  alert( event.data.foo );
}
$( "p" ).on( "click", { foo: "bar" }, myHandler );

네, 오래된 포스트입니다.그럼에도 불구하고, 누군가는 그것이 유용하다고 생각할지도 모른다.이벤트 핸들러에 파라미터를 송신하는 다른 방법이 있습니다.

//click handler
function add_event(event, paramA, paramB)
{
    //do something with your parameters
    alert(paramA ? 'paramA:' + paramA : '' + paramB ? '  paramB:' + paramB : '');
}

//bind handler to click event
$('.leadtoscore').click(add_event);
...
//once you've processed some data and know your parameters, trigger a click event.
//In this case, we will send 'myfirst' and 'mysecond' as parameters
$('.leadtoscore').trigger('click', {'myfirst', 'mysecond'});

//or use variables
var a = 'first',
    b = 'second';

$('.leadtoscore').trigger('click', {a, b});
$('.leadtoscore').trigger('click', {a});
      $imgReload.data('self', $self);
            $imgReload.click(function (e) {
                var $p = $(this).data('self');
                $p._reloadTable();
            });

JavaScript 개체를 클릭 요소로 설정합니다.

 $imgReload.data('self', $self);

"이" 요소에서 개체를 가져옵니다.

 var $p = $(this).data('self');

심플한 솔루션을 얻을 수 있습니다.

 <button id="btn1" onclick="sendData(20)">ClickMe</button>

<script>
   var id; // global variable
   function sendData(valueId){
     id = valueId;
   }
   $("#btn1").click(function(){
        alert(id);
     });
</script>

내 말은 그 값을 넘긴다는 거야onclick에 대한 이벤트javascript function sendData()변수를 초기화하여 jquery 이벤트핸들러 방식으로 가져옵니다.

에는 가능하기 때문에 합니다.sendData(valueid)가 호출되어 값이 초기화됩니다.그런 다음 jquery 이벤트가 실행된 후 해당 값을 사용합니다.

이것이 간단한 솔루션입니다.자세한 내용은 이쪽을 참조해 주세요.

'그것'이, '그것', '그것'이, '그것'이, '그것'이, '그것'이, '그것'이, '그것'이, '그것'이, '그것'이, '그것'이, '그것'이,$('.leadtoscore').click(add_event); 않다$('.leadtoscore').click(add_event('shot')); 번째 것은시키고 두 은 함수 그 함수의 는 "함수 호출"로 전달됩니다..click() 거 아니에요용어로 자바스크립트

$('.leadtoscore').click(add_event.bind(this, 'shot'));

Function.prototype.bind() 에 함수를 전달합니다..click() 바인딩이 되어 .this및 인수는 호출 시 액세스할 수 있습니다.

언급URL : https://stackoverflow.com/questions/3273350/jquerys-click-pass-parameters-to-user-function

반응형