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
'programing' 카테고리의 다른 글
목록에서 항목 색인 찾기 (0) | 2022.10.29 |
---|---|
VueX 사용 시 Vue 목록에서 Prop로 ID만 전달하고 전체 데이터 항목 전달 (0) | 2022.10.29 |
표준 시간대 인식 날짜/시간 개체를 만드는 방법 (0) | 2022.10.29 |
JavaScript에서 정의되지 않은 경우 변수 설정 (0) | 2022.10.29 |
MySQL에서 Maria로 WAMP 서버 전환DB (0) | 2022.10.29 |