2017-01-16 66 views
0

我有一個非常有趣的任務 - 我有一個外部播放器與音量欄,我需要模仿點擊這個音量欄的選定的地方。jquery設置單擊元素的選定位置

如果我點擊這個音量欄的開頭 - 它將是低音量。 如果我點擊這個音量欄的末尾 - 它將是高音量。

我知道我可以觸發所有元素的觸發器(整個音量欄在我的例子中爲$(".volume_bar").trigger("click");),但是我怎樣才能在元素的某個部分觸發點擊觸發器?例如 - 像這樣的東西$(".volume_bar").trigger("click": {left:30%});

任何想法?

+0

我建議你不要觸發模擬點擊元素 - 但發起一個函數調用的基礎上,點擊實際上會做什麼。例如,如果用戶點擊30%的音量欄 - 大概會觸發一個功能將音量更改爲該數量。因此 - 而不是試圖觸發虛假點擊。設置一個函數調用,這可能是實際點擊的結果 - 可能將所需的金額設置爲參數。例如setVolume('30%'); – gavgrif

+0

您使用哪個球員?通常玩家會給你一個api來調用函數(比如youtube api等) –

+0

@MoshFeu,不幸的是,這個玩家沒有API :( –

回答

0

您需要獲取元素的位置,然後在所需的位置觸發點擊。您可以使用jQuery的offset(),您可以設置事件的pageX和pageY params,定義爲here

要在給定的位置觸發事件,代碼應該是這樣的:

var $element = $('#element') 
$element.width() // get the width 
$element.height() // get the height 

var event = new $.Event('click'); 
event.pageX = $element.offset().left + $element.width() * 0.5 
event.pageY = $element.offset().top + $element.height() * 0.5 

$element.trigger(event) // this should click in the middle 

警告沒有測試!無論如何,你得到的要點...