我有幾個頁面上的這些行:jQuery中,如何傳遞被點擊到被稱爲上的onclick事件的方法元素
<div class="save-button" onclick="Save()">Save</div>
在我Save()
方法我想操縱DIV被點擊以調用Save()
方法。我如何通過(我認爲$(this)
),而不訴諸ID?
非常感謝!
我有幾個頁面上的這些行:jQuery中,如何傳遞被點擊到被稱爲上的onclick事件的方法元素
<div class="save-button" onclick="Save()">Save</div>
在我Save()
方法我想操縱DIV被點擊以調用Save()
方法。我如何通過(我認爲$(this)
),而不訴諸ID?
非常感謝!
要麼刪除save()
和使用click()
抓事件:
<div class="save-button">Save</div>
<script>
$('.save-button').click(function() {
// Now the div itself as an object is $(this)
$(this).text('Saved').css('background', 'yellow');
});
</script>
或者,如果你堅持使用這種功能save()
:
<div onClick="save(this)">Save</div>
<script>
$(function() {
save = function (elm) {
// Now the object is $(elm)
$(elm).text('Saved').css('background', 'yellow');
};
});
</script>
EDIT(2015年):.on('click',功能)
<div class="save-button">Save</div>
<script>
$('.save-button').on('click', function() {
// Now the div itself as an object is $(this)
$(this).text('Saved').css('background', 'yellow');
});
</script>
我會補充:如果您在錨鏈接上使用第二個「save()方法」,那麼您還必須在函數末尾添加'return;'來取消鏈接操作。 –
簡單地稱其爲:$(this)
漂亮的直線前進......
$('#myDiv').click(function(){
save($(this));
})
function save($obj){
$obj.css('border', '1px solid red');
}
裏面的
您可以使用Save()
功能
this
是指被點擊的DOM元素。
$(this)
將其轉換爲jQuery對象。
這是指window
默認不過,所以你需要通過this
爲保存函數的參數:
<div class="save-button" onclick="Save(this)">Save</div>
function Save(div) { }
現在裏面保存,可以使用div
指代是DIV點擊。
我很困惑如何this
表現。此鏈接對我有幫助:http://www.quirksmode.org/js/this.html
不,它沒有。在'Save'裏面,'this'是指'window'。 –
你是對的。爲了讓'this'引用div,你需要將它傳遞給save函數。看我的編輯。 –
此外,你不能簡單地使用'div',它必須在jQuery中作爲一個對象'$(div)'。否則,它不會像$(this)那樣行事。 –
在事件處理程序中,this
引用了clicked元素。但是,在您從事件處理程序調用的函數內部,即Save
,this
將引用窗口。
您可以明確設置什麼this
應該是指內通過call
[MDN](或apply
)Save
:
onclick="Save.call(this, event || window.event);"
那麼你可以使用它裏面的功能爲$(this)
:
function Save(event) {
// `this` refers to the clicked element
// `$(this)` is a jQuery object
// `event` is the Event object
};
但因爲你使用的是jQuery,所以你應該做
$('.save-button').click(Save);
綁定事件處理程序。將標記與邏輯混合並不是一種好的風格。您應該將演示文稿與應用程序邏輯分開。
或者,如果你想Save
接受一個元素作爲參數,則只是把它傳遞:
onclick="Save(this);"
和使用jQuery:
$('.save-button').click(function() {
Save(this);
});
更多信息,如果您想更清晰的答案,但如果保存()方法被綁定到點擊事件,然後是$(這)會工作。 –
Answererd您自己的問題。這將引用最初點擊的元素。 –