1. 程式人生 > >js模擬點選事件

js模擬點選事件

在頁面載入之後,我們經常會遇到聯動的問題。這個時候就需要在頁面載入後就自動觸發第一個點選事件這樣後面的聯動才能在網頁中顯示出來。
在js當中可以使用
trigger方法

$("selector").trigger("click");

比如在我的程式碼中我先給這個ul 裡面的li 添加了點選事件 然後模擬觸發了這個事件。

    $(".place-classify ul").on("click","li",function(){
        var placeName = $(this).html();
       createPlaceContent(placeName) ;
    });
    $(".place-classify ul li:first-child"
).trigger('click');

但有的時候模擬事件並沒有觸發一般可能遇到兩個問題:

  1. 模擬點選事件寫在了點選事件的前面。
    有的人認為這個是在頁面載入後才觸發的尤其是寫在$(function(){});當中就是先渲染在觸發,但是一個頁面開啟先渲染的是整個頁面的元素,而不是js程式碼,js程式碼還是會一條條的往下執行,那麼把模擬點選寫在前面的話就是先觸發再宣告,所以沒有效果,把他移到點選事件的後面就可以了。

  2. 已經把點選事件移到了後面但還是沒有觸發,那麼可能是非同步載入的原因,由於你的網頁是非同步載入那麼由於資料還沒有處理完你就發生了點選事件,同樣的道理,動態生成的元素都還沒有生成,就觸發了點選事件。辦法就是把ajax請求改為同步請求。$.ajax({
    url:url,
    data:data,
    async:false,
    success:function(result){
    handle(result);
    },
    error:function(result){
    alert("獲取資料失敗");
    }
    });