jQuery克隆和触发器。错误或功能?

时间:2016-02-10 21:00:32

标签: javascript jquery

将el1克隆到el2之后,似乎el2无法将处理程序添加到自定义触发事件。我不知道是不是一个错误或特征......

更新:抱歉我noob,错误original.trigger()==> $(本).trigger()

<?php
    // Include the php dom parser    
    include_once 'simple_html_dom.php';
    //build the google images query
    $newname = '';
    foreach ($firstpersonaGroupNameForGoogle as $firstpersonaPartofGroupName) {
        $newname = $firstpersonaPartofGroupName . '+';
    }
    $newname = rtrim($newname, "+");
    //echo "https://www.google.com/search?q=" . $firstpersonaName . "+" . $newname . '&tbm=isch'; 
    $newname = "https://www.google.com/search?q=" . $firstpersonaName . "+" . $newname . '&tbm=isch';

    //use parser on queried page
    $html = file_get_html($newname);
    //echo $html;

    //create an array for all pics on page
    $picarray = array();
    $picurl = '';

    // Find all images 
    foreach($html->find('img') as $element) {
       //echo $element->src . '<br>';
       $picurl = $element->src;
       array_push($picarray,$picurl);
    }
    //then pick two random ones
    $picurl = $picarray[array_rand($picarray)];
    echo "<img src=" . $picurl . ">";
    $picurl = $picarray[array_rand($picarray)];
    echo "<img src=" . $picurl . ">";

?>

以下是示例:https://jsfiddle.net/g753kt8f/1/

别忘了打开控制台。

1 个答案:

答案 0 :(得分:1)

它既不是错误也不是特征;这是预期的行为。

它发生的原因是因为original变量仍引用前一个元素,而不是克隆的元素。如果要在原始元素和克隆元素上触发该函数,则应使用this关键字来引用引发事件的元素:

original.on('click', function() {
    console.log('click handler');
    $(this).trigger('custom');
});

Updated fiddle