2013-07-19 33 views
2

在函數clickCircle中,我想使用被點擊的li。所以我想收到它作爲參數。Javascript-在onClick函數中發送點擊的對象作爲參數

<li class="circle" onClick='clickCircle(this)'></li> 

但是,我應該作爲一個實際的參數發送?即代替'this'。

+0

'函數clickCircle(chooseSomeNameThatMakesYouHappy){...} ' –

+0

你的代碼應該按照你的要求工作,什麼是不正確的工作? – Mangiucugna

+0

不確定是否嚴重。 –

回答

0

試試這個

<li class="circle"></li> 

$('.circle').on('click', function(event) { 
    event.target // your element 
}); 
+1

這個問題不是關於jQuery的 – edi9999

+0

你可能已經提交了另一個答案,不要傳遞downvotes ..並且當它在刪除時進行編輯時,我無法刪除我的downvote,因爲它不計入編輯(看起來像一個錯誤)。或者,也許是因爲你在5分鐘的寬限期內對它進行了編輯。 –

+0

爲什麼不呢? 'jquery'在OP的標籤中。 – DevlshOne

0

你應該只使用第一個參數作爲元素。

HTML

<li class="circle" onClick='clickCircle(this)'></li> 

JS

clickCircle=function(element) 
{ 
console.log(element) 
console.log(element.tagName) // This will show LI 
} 

的jsfiddle:http://jsfiddle.net/edi9999/WhVLm/

+0

也許甚至? No.(this)將元素引用爲對象,(event)引用事件本身。 'this.value'或'this.indexOf()'會起作用。 – DevlshOne

4

您可以使用this

function clickCircle(obj) // the li element clicked in the current scope 
{ 
    var element = obj; // This is the DOM object being clicked 
    var $this = $(obj); // This is the jQuery object being clicked 

    // Use DOM object like 
    element.style.color="#ff0000"; 

    // Use jQuery object like 
    $this.css('color', 'red'); 
} 
+0

我不得不這樣做,因爲我在函數聲明中犯了「this」的錯誤,所以出錯了,但這只是我的一個腦屁。 – Nelson

0

你可以做到這一點jquery的是這樣的:

$(function() { 
    $('li.circle').on('click', function() { 
    clickCircle($(this)); 
    }); 
}); 

var clickCircle = function (param) { 
    // your code here 
    // param.css('color', 'red').html(); 
}; 

或者與原始的javascript:

HTML

<li id="circle" class="circle"></li> 

JAVASCRIPT

var circle = document.getElementById('circle'); 

circle.addEventListener('click', function (e) { 
    clickCircle(e.target); 
}); 

var clickCircle = function (param) { 
    // your code here 
    // alert(param.nodeName.toLowerCase()); 
} 
相關問題