2014-09-07 3 views
2

클릭 위치를 트랩하는 웹 페이지 안에 js 함수가 있습니다. 페이지에 양식 요소가 포함되어있는 경우 인식되는 방식으로 구현해야하며, 그렇다면 클릭하는 부분이 무작위 형식 요소인지 아닌지에 대한 확인을 수행해야합니다. 나는 그것의 요소를 배울 양식을 확인하고 일어나서,하지만 난 클릭은 하나의 요소에 구성되어 있는지 확인하는 방법을 모른다 :onclick 이벤트에서 트리거 된 양식 요소를 확인하십시오.

$('*').on('mousedown', function (e) { 
// make sure the event isn't bubbling 
if (e.target != this) { 
    return; 
} 
// do something with the click somewhere 
// for example, get the coordinates: 
x = e.pageX; 
y = e.pageY; 
pa = $(location).attr('href'); 
//Window dimension 
var width = $(window).width(); 
//var width = $getWidth(); 
var height = $(window).height(); 

//Check if page contain a form 
var elementF = document.querySelectorAll('form'); 
var fname = ''; 
var elements = ''; 
for (var i=0; i<elementF.length; i++){ 
    fname = elementF[i].id; 
    elements = document.forms[fname].elements; 
    for (x=0; x<elements.length; x++){ 
    //Now i need to check if element is clicked or not 
    } 
} 
+0

워 ... 당신은 아마 당신이 ID를 사용하고자하는 말을하는지? 폼에 id 속성을 부여한 다음'document.getElementById (id_here)'를 사용하십시오. – iabw

+0

양식이 존재하는지 여부는 이미 알고 있으며 요소의 모든 ID를 이미 알고 있으므로 녹음중인 클릭이이 항목 중 하나에서 수행되는지 여부를 알아야합니다. – AleMal

답변

3

을 시도 무엇 여기서하고있는 일은 페이지의 모든 요소에 mousedown 이벤트를 바인딩하는 것입니다. 이는 자원 집약적 일 것이므로 필요하지 않아야합니다. 또한, 어디 에나 있기 때문에, 은 당신이 무언가를 마우스로 떼었을 때마다 수백만 번이나 발사하는 것을 막을뿐만 아니라 버블 링을 방지합니다. 그냥 거품을 내고 e.targete.currentTarget을 사용하여 물건을 구분하십시오. 어떤 이유도해서는 안됩니다. $('*').on("mousedown")

왜이 작업을 수행 할 수 없습니까?

$("form").on("click", function(e){ 
    // e.currentTarget will be the form element capturing the click 

    console.log($(e.currentTarget).html()); 

    // e.target will be whatever element you clicked on 
    // so you can do whatever you want with it 

    console.log($(e.target).text()); 

    // All your handler code here 
}); 

일부 아마도 도움이 물건

1

$('*').on('mousedown', function (e) { 
    var elementClicked = e.target.nodeName; 
    console.log("element: " + elementClicked) 
}) 
관련 문제