将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/
别忘了打开控制台。
答案 0 :(得分:1)
它既不是错误也不是特征;这是预期的行为。
它发生的原因是因为original
变量仍引用前一个元素,而不是克隆的元素。如果要在原始元素和克隆元素上触发该函数,则应使用this
关键字来引用引发事件的元素:
original.on('click', function() {
console.log('click handler');
$(this).trigger('custom');
});